Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь по javascript (https://javascript.ru/forum/misc/67665-nuzhna-pomoshh-po-javascript.html)

rulerup 01.03.2017 22:05

Нужна помощь по javascript
 
Нужно написать javascript код по двум заданиям, 2 задание используя button
1.Определить количество натуральных чисел из интервала от 100 до 500, сумма цифр которых
равна 15
2.Дано натуральное число. а) Получить всеего делители. б) Найти сумму его делителей. в) Найти сумму его четных делителей.г) Определить количество его делителей. д) Определить количество его нечетных делителей. е) Определить количество его делителей. Сколько из них четных? ж) Найти количеств о его делителей, больших d

Alexandroppolus 01.03.2017 23:31

Цитата:

Сообщение от rulerup
1.Определить количество натуральных чисел из интервала от 100 до 500, сумма цифр которых
равна 15

странная какая-то задача. Зачем писать код там, где решается устно? (5 + 6 + 7 + 8).

рони 01.03.2017 23:36

Цитата:

Сообщение от Alexandroppolus
странная какая-то задача. Зачем писать код там, где решается устно? (5 + 6 + 7 + 8).

:blink:

рони 01.03.2017 23:46

Alexandroppolus,
какая связь между
Цитата:

Сообщение от Alexandroppolus
(5 + 6 + 7 + 8).

и числами 159,168,177,186,195,249,258,267,276,285,294,339,34 8,357,366,375,384,393,429,438,447,456,465,474,483, 492 ?

Alexandroppolus 02.03.2017 00:15

рони,
5 + 6 + 7 + 8 = количество этих чисел. 5 из них начинаются на 1, 6 на 2, и т.д. )

И непонятно, какое решение хочет видеть препод. Полный цикл от 100 до 500 с проверкой каждого числа (плохое решение, пример того как не надо делать), или по уму? По уму получается такой перебор, который можно в уме сделать за 20 секунд.

Я понимаю, если бы было, например, от 100 млн. до 500 млн. - это содержательная задача. А тут хрень какая-то.

рони 02.03.2017 00:28

Alexandroppolus,
какая связь то? почему перебор плохое решение, какое может быть иное решение, кроме перебора.

Paguo-86PK 02.03.2017 00:29

Цитата:

Сообщение от Alexandroppolus (Сообщение 446048)
Я понимаю, если бы было, например, от 100 млн. до 500 млн. - это содержательная задача. А тут хрень какая-то.

Лучшe от 100! до 500! тогда уж:lol:

Alexandroppolus 02.03.2017 10:06

Цитата:

Сообщение от Rise
А как ты так устно посчитал?

ну, например, если первое цифра - 1, то вторая меняется от 5 до 9 включительно, чтобы вместе с третьей сумма была 14.

Для 2, 3, 4 - аналогично.

рони 02.03.2017 10:33

Alexandroppolus,
так есть алгоритм вашего вычисления или это доступно только вам? можно написать функцию, которая не будет перебор использовать?

Alexandroppolus 02.03.2017 11:25

рони,
ну примерно так:

var count = 0;
for (var i = 1; i <= 4; ++i) {
  count += 4 + i;
/*
   тут подразумевается такое:
  var N = 15 - i; // оставшаяся сумма без первой цифры
  var start = N - 9; // минимальное значение второй цифры
  var end = 9; // максимальное значение второй цифры
  var delta = end - start + 1; // сколько всего допустимых значений второй цифры
  count += delta; // delta = 9 - (15 - i - 9) + 1 = 4 + i
*/
}
alert(count);


вот и весь перебор )


Часовой пояс GMT +3, время: 21:26.