diff --git a/labs/lab5/desc.json b/labs/lab5/desc.json new file mode 100644 index 0000000..d11fe67 --- /dev/null +++ b/labs/lab5/desc.json @@ -0,0 +1,28 @@ +{ + "number": "5", + "task": "Повторяющийся квадратный корень из числа - это количество раз, которое необходимо применить к функции извлечения квадратного корня, чтобы число было строго меньше 2. Для заданного целого числа вернуть повторяющийся квадратный корень. Вернуть «недействительно», если оно отрицательное.", + "vars": [ + [ + { + "name": "n", + "desc": "Исходное число", + "data": "" + } + ], + [ + { + "name": "n", + "desc": "Исходное число", + "data": "8" + } + ], + [ + { + "name": "n", + "desc": "Исходное число", + "data": "-5" + } + ] + ], + "complete": true +} \ No newline at end of file diff --git a/labs/lab5/main.js b/labs/lab5/main.js new file mode 100644 index 0000000..07c5cee --- /dev/null +++ b/labs/lab5/main.js @@ -0,0 +1,31 @@ +"use strict"; + +function main(formName) { + let result = document.getElementById("result"); + + let n = document.forms[formName].elements[0].value; + if (isNotNumber(n)) { + result.textContent = "Ошибка: n не является числом!"; + return; + } + + result.textContent = "Результат: " + countRoots(n); +} + +function countRoots(n) { + if (n < 0) { + return undefined; + } + + let result = 0; + while (n >= 2) { + n = Math.sqrt(n); + result++; + } + + return result; +} + +function isNotNumber(val) { + return val.replace(/\s/g, '').length === 0 || isNaN(val); +}