29.01.2022, 09:47
|
Новичок на форуме
|
|
Регистрация: 29.01.2022
Сообщений: 7
|
|
JavaScript cycle
Всем доброго дня , я только учусь на web программиста и вот изучаю javascript, и дали задание найти счастливое число (немного грубый перевод с моего языка ) это то число чья сумма цифр на которые она делиться равна ей самой , и от 1-100 есть 2 числа , а от 1-500 есть 3 таких числа , одно из них это 6 (6/ делиться на 1,2,3 ,а 1+2+3=6 , каким методом в javascript я могу найти эти три числа используя цикл ? , где могу прочитать о них? помогите кто знает? заранее блогадарен.
|
|
29.01.2022, 10:16
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,754
|
|
Условие не совсем понятно.
Сообщение от Harut97
|
сумма цифр на которые она делиться
|
Например, 34 делится на 2 и 17.
Какая сумма имеется в виду 2+17 (17 - не цифра) или 2+1+7?
|
|
29.01.2022, 10:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
поиск счастливых чисел
Harut97,
https://learn.javascript.ru/operators
https://learn.javascript.ru/array-methods
function findHappiness(start, end) {
const arr = [];
for (let i = start; i <= end; i++) {
let sum = 0,
limit = i / 2;
for (let j = 0; j <= limit; j++) {
if (i % j === 0) sum += j;
}
if (sum === i) arr.push(i)
}
return arr;
}
const find = findHappiness(1, 500);
alert(find);
Последний раз редактировалось рони, 29.01.2022 в 10:27.
|
|
29.01.2022, 11:31
|
Новичок на форуме
|
|
Регистрация: 29.01.2022
Сообщений: 7
|
|
Javascript cycle
Рони условие было такое найти счастливые числа от 1-100 или от 1 до 500, от 1-100 есть 2 числа, одно из них это 6 (ведь цифры на которые она делиться составляют это же число , то есть 6 делиться на 1,2,3 а 1+2+3=6, исходя из этого принципа , написать цикл который найдет и выведет через document.write() эти 2 счастливых числа от 1-100, заранее спасибо друг
|
|
29.01.2022, 12:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Harut97,
что не так в предложенном коде?
|
|
29.01.2022, 13:18
|
Новичок на форуме
|
|
Регистрация: 29.01.2022
Сообщений: 7
|
|
все отлично даже лучше чем я хотел , возможен ли вариант с того же решения только без функции а используя цикл ?просто есть такой вариант или нет ? интересно и еще раз спасибо за помошь друг
|
|
29.01.2022, 13:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Harut97,
вы просите то, что у вас уже есть.
|
|
29.01.2022, 13:27
|
Новичок на форуме
|
|
Регистрация: 29.01.2022
Сообщений: 7
|
|
да точно сам уже запутался , спасибо за помошь)
|
|
29.01.2022, 13:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Сообщение от Harut97
|
через document.write()
|
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
function findHappiness(start, end) {
const arr = [];
for (let i = start; i <= end; i++) {
let sum = 0,
limit = i / 2;
for (let j = 0; j <= limit; j++) {
if (i % j === 0) sum += j;
}
if (sum == i) arr.push(i)
}
return arr;
}
let start = 1, end = 100, find = findHappiness(start, end);
document.write(`${start} - ${end} : ${find}<br>`);
end = 500;
find = findHappiness(start, end);
document.write(`${start} - ${end} : ${find}<br>`);
</script>
</body>
</html>
Сообщение от Harut97
|
без функции
|
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script>
let start = 1, end = 100;
let arr = [];
for (let i = start; i <= end; i++) {
let sum = 0,
limit = i / 2;
for (let j = 0; j <= limit; j++) {
if (i % j === 0) sum += j;
}
if (sum == i) arr.push(i)
}
document.write(`${start} - ${end} : ${arr}<br>`);
end = 500;
arr = [];
for (let i = start; i <= end; i++) {
let sum = 0,
limit = i / 2;
for (let j = 0; j <= limit; j++) {
if (i % j === 0) sum += j;
}
if (sum == i) arr.push(i)
}
document.write(`${start} - ${end} : ${arr}<br>`);
</script>
</body>
</html>
|
|
29.01.2022, 14:22
|
Новичок на форуме
|
|
Регистрация: 29.01.2022
Сообщений: 7
|
|
01
function findHappiness(start, end ) что должна делать эта функция?
|
|
|
|