Всего лишь вторую неделю изучаю Основы программирования. Есть задача, надо решить с помощью JavaScript'a. Сижу второй день, туплю ( Перепробывал массу вариантов, результат так и не появился ( Помогите плиз куда смотреть, на что обратить внимание
Определить все четырехзначные числа, сумма цифр которых равна их произведению.
a=1; b=0; c=0; d=0; // числа
n=0; // количество чисел
for(a=1,b=0,c=0,d=0;a<=9,b<=9,c<=9,d<=9;a++,b++,c++,d++)
if(a+b+c+d == a*b*c*d)
k=1000*a+100*b+10*c+d;
n+=1;
document.write("четырехзначные числа "+n);
Ошибка в определении цикла:
for(a=1,b=0,c=0,d=0;a<=9,b<=9,c<=9,d<=9;a++,b++,c++,d++)
в этом случае переменные на каждой итерации будут меняться одновременно, таким образом будет всего 8 итераций.
Кроме того, чтобы в теле цикла выполнилось несколько операций, его нужно обернуть в фигурные скобки, иначе внутри цикла будет выполнена только первая, в данном случае
if(a+b+c+d == a*b*c*d)
k=1000*a+100*b+10*c+d;
Чтобы выбранный подход заработал, нужно 4 цикла:
var n = 0,
nums = [];
for (a = 1; a <= 9; a++)
for (b = 0; b <= 9; b++)
for (c = 0; c <= 9; c++)
for (d = 0; d <= 9; d++) {
if (a + b + c + d == a * b * c * d) {
k = 1000 * a + 100 * b + 10 * c + d;
n += 1;
nums.push(k);
}
}
document.write("четырехзначные числа " + n);
document.write('<br>', JSON.stringify(nums));
Но можно пойти с другой стороны: перебрать в одном цикле все четырехзначные числа, и уже внутри проверять подходит число или нет.
Например так:
var n = 0,
nums = [];
for (var i = 1000; i < 10000; i++) {
if (i.toString().split('').reduce((a, b) => +b + a, 0) == i.toString().split('').reduce((a, b) => +b * a, 1)) {
n += 1;
nums.push(i);
}
}
document.write("четырехзначные числа " + n);
document.write('<br>', JSON.stringify(nums));
Спасибо за помощь. Разобрался, массивы я еще не изучал, но был близок :) Еще раз спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В общем загружаем и показываем картинку, скачанную с сервераПроблема в том, что если сервер возвращает 404, то alert выскакивает 2 раза
Отправляю запрос на сервер через AJAXНа сервере очень тяжелый алгоритм с кучей классов и функций
Здравствуйте, как сделать селекторЧтобы сначала был выбор стран, к стране были прикреплены определенные города
Всем привет! Я попытался установить форму контакта на сайте и она хорошо работает и даже пишет, что письмо было оотослано, но письмо так и не доходит...