Skip to content

Commit

Permalink
Homework-2: task 3 has been completed
Browse files Browse the repository at this point in the history
  • Loading branch information
dtr200 committed Jun 15, 2021
1 parent e847f66 commit 6109e2f
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 1 deletion.
44 changes: 44 additions & 0 deletions homework-lecture-2/closest-number.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
function getClosest(list){
// Распарсиваю данные

let [ , values, num] = list;
values = values.split(' ')
.map(num => Number(num));
num = Number(num);

/* closest - текущее самое близкое,
lacks - сколько не хватает до num
*/

let closest = values[0];
let lacks = Math.abs(num - closest);

// если lacks === 0, тогда closest на первой позиции

if(!lacks)
return `${closest}`;

/*
Иду по values, считаю разницу между num и текущим значением,
беру ее по модулю.
Если она == 0, тогда return.
Если разница меньше прошлой разницы, сохраняю ее и текущее занчение.
*/

for(let i = 1; i < values.length; i++){
const nowLacks = Math.abs(num - values[i]);

if(!nowLacks)
return `${values[i]}`;

if(nowLacks < lacks){
closest = values[i];
lacks = nowLacks;
}
}

return `${closest}`;
}

getClosest(['5', '1 2 3 4 5', '6']);
getClosest(['5', '5 4 3 2 1', '3']);
32 changes: 31 additions & 1 deletion homework-lecture-2/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,34 @@ NO
#### Вывод
CONSTANT

### Решение: sequence-type.js
### Решение: sequence-type.js

# C. Ближайшее число

Напишите программу, которая находит в массиве элемент, самый близкий по величине к данному числу.

### Формат ввода
В первой строке задается одно натуральное число N, не превосходящее 1000 – размер массива. Во второй строке содержатся N чисел – элементы массива (целые числа, не превосходящие по модулю 1000). В третьей строке вводится одно целое число x, не превосходящее по модулю 1000.

### Формат вывода
Вывести значение элемента массива, ближайшее к x. Если таких чисел несколько, выведите любое из них.

### Пример 1
#### Ввод
5
1 2 3 4 5
6

#### Вывод
5

### Пример 2
#### Ввод
5
5 4 3 2 1
3

#### Вывод
3

### Решение: closest-number.js

0 comments on commit 6109e2f

Please sign in to comment.