Задачи по JavaScript с решениями: найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S

Задачи по JavaScript с решениями: найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S

Программирование на языке JavaScript.

Задача: Найти все натуральные числа из промежутка от 1 до 200, у которых сумма цифр равна S.

Решение:

<!DOCTYPE>
<html>
<head>
<title>Задачи по JavaScript</title>
</head>
<body>
<script>
function f_click() {
var div1 = document.getElementById("1").value;
var b_lines = document.getElementById('lines');
var x=div1.length;
var r=0;
var t='';
for( var i = 1; i <=200; ++i ) {
for(var j = 0; j <i.toString().length ; ++j ){
r=r+parseInt(i.toString().charAt(j));
}
if (r==parseInt(div1)){
t=t+' '+i;}
r=0;
}
b_lines.innerHTML=t;
}
</script>
Введите число S: <br />
<input id='1' name="login" type="text" size="25" maxlength="30" value="" /> <br />
<input type="button" name="enter" value="Расчет" onclick="f_click()" />
<div style="margin: 0 auto;width: 200px; font-size:25px" id="lines"></div>
</body>
</html>

Копируем выше описанный код в какой-нибудь текстовый редактор (лучше в Notepad++) и сохраняем файл в формате HTML.

Используемые функции и методы в коде:

document.getElementById(id) — возвращает элемент по заданному id для дальнейшей работы с ним.

.value — возвращает значение «value» элемента.

.length — длина массива, в данном случае длина строки.

.toString() — преобразование в строку.

parseInt() — преобразование в число.

.charAt(i) — обращение к символу строки по индексу i.

.innerHTML — получает, изменяет содержание элемента.

Идея:

Вводим наше число S (желательно простое число), нажимаем «Расчет» после чего срабатывает функция f_click(). В переменной div1 храним наше число S, а в x — его длину. В цикле for перебираем натуральные числа от 1 до 200. Во втором цикле for высчитываем сумму цифр каждого натурального числа, чтобы потом сравнить ее в цикле if с введенным ранее числом S. Найденные натуральные числа выводятся по центру документа в блоке div c с id=»lines«.

Все хорошо работает, но есть небольшое «Но». Код работает не со всеми числами S, только от 1 и до 19. И я, к сожалению, понятия не имею почему…

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *