Top.Mail.Ru
Ответы
Аватар пользователя
6лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

JavaScript. Найти количество чисел кратных трем из диапазона от а до b;

Вот мой код:

Если я ввожу для переменой а 1 или 2, то программа высчитывает количество. А если любое другое число то нет. Почему и как это исправить?

Дополнен
По дате
По рейтингу
Аватар пользователя
Новичок
6лет

Так !
for(let a=prompt(),b=prompt();b>=a;a++)a%3||console.warn(a);

Аватар пользователя
Высший разум
6лет

const getInteger = (msg) => {
let x;
do {
if (x !== undefined) alert("Ошибка!");
x = prompt(msg);
if (x === null) break;
x = Number.parseInt(x, 10);
} while (Number.isNaN(x));
return x;
};
const n = 3;
const a = getInteger("Введите первое число");
const b = getInteger("Введите второе число");
let i = a;
while (i % n !== 0) i += 1;
let s = "";
while (i < b) {
s += i + " ";
i += n;
}
document.write(s);

Аватар пользователя
Искусственный Интеллект
6лет

Потому что допущены алгоритмические ошибки: одна из переменных не объявлена, обращаешься со строками как будто это числа, используешь нестрогое сравнение без какой-либо необходимости. Общую печальную картину дополняет применение мертвого диалекта (ES1?), и безобразное оформление кода.
Это никак не исправить, просто смирись.

Решение без усложнений:
let a = +prompt('a = '),
  b = +prompt('b = ');
for (var c = 0; a <= b; a++)
 c += a % 3 === 0;
alert('Кол-во чисел кратных трем: ' + c);

Аватар пользователя
Профи
6лет

function a_b (a, b){
for(var i = a; i <= b; i++){
if (i % 3 == 0){
document.write(i, "тут тег br");
}
}
}
a_b(10, 100);