Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Study</title>
- </head>
- <body>
- <script>
- `use strict`
- // 7. Запросить у пользователя число и на сколько цифр его
- // сдвинуть. Сдвинуть цифры числа и вывести результат (если
- // число 123456 сдвинуть на 2 цифры, то получится 345612)
- let num = +prompt('Enter number to shift', 1000001);
- console.log(`num = ${num}`);
- let digitsCount = 0;
- for (let numCnt = num; numCnt; ++digitsCount, numCnt = Math.floor(numCnt / 10));
- console.log(`digitscount = ${digitsCount}`);
- let shift = +prompt(`Shift ${num} left for: `, 3);
- shift %= (digitsCount);
- let result = String(num);
- console.log(`shift = ${shift}`);
- // if there are SOME zeroes in original number this method do the job.
- // We assume that user can't enter number with heading zeroes, so
- // 10002 is correct number, but not 01002. This method IS BASED on such assumption.
- if (shift > 0) {
- let div = 10 ** (digitsCount - shift);
- console.log(`div = ${div}`);
- let head = String(Math.floor(num / div));
- div /= 10;
- console.log(`div = ${div}`);
- let tail = '';
- while (div > 0.1) {
- tail += String((Math.floor(num / div)) % 10);
- div /= 10;
- console.log(`tail = ${tail}`);
- }
- result = tail + head;
- }
- // If there are NO zeroes in original number this method do the job
- //if (shift > 0) {
- // let div = 10 ** (digitsCount - shift);
- // console.log(`div = ${div}`);
- // let head = String(Math.floor(num / div));
- // let tail = String(num % div);
- // console.log(`head = ${head}`);
- // console.log(`tail = ${tail}`);
- // result = tail + head;
- //}
- console.log(`result = ${result}`);
- </script>
- </body>
- </html>
Add Comment
Please, Sign In to add comment