Объясните пожалуйста следующий код
Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).
let number = +prompt('Введите число : ');
let count = +prompt('Введите цифру для сдвига: ');
let number2 = number<0 ? number*(-1) : number;
for(i = count; i > 0; i--){
let count2=0;
for(j=number2; j>=1; j/=10){
count2++;
}
let power = 10**(count2-1);
number2=(number2-Math.floor(number2/power)*power)*10+Math.floor(number2/power);
}
alert(number2);
Не могу понять алгоритм кода, решить нужно именно циклом.
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
let number = +prompt('Введите число : '); // Получаем число
let count = +prompt('Введите цифру для сдвига: '); // Получаем сдвиг
let number2 = number<0 ? number*(-1) : number; // Если число меньше 0, умножаем на -1 иначе оставляем введенное число и присваиваем переменной
for(i = count; i > 0; i--){ // Запускаем цикл для i = сдвиг, пока i больше 0, каждую итерацию уменьшаем значение на 1
let count2=0;
for(j=number2; j>=1; j/=10){ // каждую итерацию делим j на 10, пока j не станет меньше 1
count2++; // Увеличиваем на 1
}
let power = 10**(count2-1); // присваиваем значение 10 в степени count2-1
number2=(number2-Math.floor(number2/power)*power)*10+Math.floor(number2/power); // Выполняем расчет
}
alert(number2); // выводим в браузер ))