Циклы JS

Домашнее задание:

  1. Подсчитать сумму всех чисел в заданном пользователем диапазоне.
        let num1 = Number(prompt('Для подсчета суммы чисел в заданном диапазоне введите начальную цифру диапазона'));
        let num2 = Number(prompt('Введите конечную цифру'));
        let sum = 0;
    
        if (num1 < num2) {
            while (num1 <= num2) {
                sum += num1;
                num1++;
            };
        } else if (num1 > num2) {
            while (num1 >= num2) {
                sum += num2;
                num2++;
            };
        };
        alert(`Сумма всех чисел в указанном диапазоне ${sum}`);
                    
  2. Запросить 2 числа и найти только наибольший общий делитель.
        let number1 = Number(prompt('Для нахождения НОД двух чисел введите первую цифру'));
        let number2 = Number(prompt('Введите вторую цифру'));
    
        while (number1 != 0 && number2 != 0) {
            if (number1 > number2) {
                number1 = number1 % number2;
            } else {
                number2 = number2 % number1;
            };
        };
        alert(` Наибольший общий делитель двух указанных чисел равен ${number1 + number2}`);
                    
  3. Запросить у пользователя число и вывести все делители этого числа.
        let number = Number(prompt(' Введите число'));
        let divisor = [];
        for (let i = 2; i < number; i++) {
            if (number % i == 0 && number !== 1 ) {
                console.log(i);
                divisor.push(i);
            };
        };
        alert(`Все делители числа ${number}:  ${divisor}`);
                    
  4. Определить количество цифр в введенном числе.
        let userNumber = prompt(' Введите число'); 
        let count = 0;
    
        for (let i = 0; i < userNumber.length; i++) {
            count += 1;
        };
        alert(` Число состоит из ${count} цифр`);
                    
  5. Запросить у пользователя 10 чисел и подсчитать, сколько он ввел положительных, отрицательных и нулей. При этом также посчитать, сколько четных и нечетных. Вывести статистику на экран. Учтите, что достаточно одной переменной (не 10) для ввода чисел пользователем.
        let positive = 0;
        let negative = 0;
        let zero = 0;
        let even = 0;
        let odd = 0;
    
        for (let i = 1; i <= 10; i++ ) {
            const num = prompt("Введите число");
            
            if (num > 0) {
            positive++;
            };
            if (num < 0) {
            negative++;
            };
            if (num == 0) {
            zero++;
            };
            if (num % 2 == 0) {
            even++;
            };
            if (num % 2 !== 0) {
            odd++;
            };
        };
    
        alert(` Из введенных цифр - положительных: ${positive}, отрицательных: ${negative}, нулей: ${zero}, четных: ${even}, нечетных: ${odd}.`)
                    
  6. Зациклить калькулятор. Запросить у пользователя 2 числа и знак, решить пример, вывести результат и спросить, хочет ли он решить еще один пример. И так до тех пор, пока пользователь не откажется.
        do {
            let firstNumber = prompt(' Введите первое число');
            let secondNumber = prompt(' Введите второе число');
            let operator = prompt(' Введите математический оператор', '+, -, *, /')
            let answer = eval(`${firstNumber} ${operator} ${secondNumber}`);
            alert(`Ответ ${answer}`);
            
        } while (confirm(' Решить еще один пример?'));
                    
  7. Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).
        do {
            let q = prompt(' Введите число', '1234567890');
            let move = Number( prompt(' На сколько цифр сдвинуть?') );
            alert(q.slice(move) + q.slice(0, move));
    
        } while (confirm(' Еще одно число ?'));
                    
  8. Зациклить вывод дней недели таким образом: «День недели. Хотите увидеть следующий день?» и так до тех пор, пока пользователь нажимает OK.
        const days = ["понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье"];
        let currentDay = 0;
        let nextDay;
        do {
            alert(`День недели - ${days[currentDay]}.`);
            nextDay = confirm(' Хотите увидеть следующий день?');
            currentDay++;          
            if (currentDay === days.length) {
                currentDay = 0;
            };         
    
        } while (nextDay);
                    
  9. Вывести таблицу умножения для всех чисел от 2 до 9. Каждое число необходимо умножить на числа от 1 до 10.
        let tables = [];
    
        for (let i = 2; i <= 9; i++) {
            tables.push(`\n Таблица умножения ${i}:\n`);
            for (let j = 1; j <=10; j++) {
                tables.push(`${i} * ${j} = ${i*j}; `);
            };
        };
        alert(tables.join(''));
        console.log(tables.join(''));
                    
  10. Игра «Угадай число». Предложить пользователю загадать число от 0 до 100 и отгадать его следующим способом: каждую итерацию цикла делите диапазон чисел пополам, записываете результат в N и спрашиваете у пользователя «Ваше число > N, < N или == N?». В зависимости от того, что указал пользователь, уменьшаете диапазон. Начальный диапазон от 0 до 100, поделили пополам и получили 50. Если пользователь указал, что его число > 50, то изменили диапазон на от 51 до 100. И так до тех пор, пока пользователь не выберет == N.
        let guessedNum = Number(alert("Загадайте число от 1 до 100"));
        let lowerLimit = 0;
        let upperLimit = 100;
        let N = 50;
    
        while (guessedNum !== N ) {
            let answer = prompt(`Ваше число >, <, или равно ${N}`, '>, <, =');
            if (answer == '>') {
                lowerLimit = N;
                N = Math.ceil((upperLimit - lowerLimit) / 2 + lowerLimit);
            } else if (answer == '<') {
                upperLimit = N; 
                N = Math.ceil((upperLimit - lowerLimit) / 2 + lowerLimit);
            } else {
                break;
            };
        };
        alert(`Задуманное число ${N}`);