35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
# Блок заданий "Задание, Java Script, Node JS:" (3)
|
||
3. На javascript, без использования математических функций, проверить, является ли целое число квадратом.
|
||
|
||
Входным параметром у нас является целое число. Поскольку javascript является языком с динамической типизацией данных нам для начала надо реализовать проверку входных данных: для этого необходимо написать соответствующую функцию:
|
||
```javascript
|
||
function isInt (value) { // Функция проверки целочисленного типа
|
||
if (typeof(value) == 'number') {
|
||
return parseInt(value) == value;
|
||
}
|
||
else {
|
||
return false;
|
||
}
|
||
}
|
||
```
|
||
|
||
Далее, мы применяем проверку уже в нашей основной функции и в случае провала проверки выдаём ошибку.
|
||
Алгоритм проверки заключается в следующем: мы перебираем все квадраты в цикле, пока следующий квадрат не будет либо больше, либо равен нашему входному параметру.
|
||
Если квадрат в цикле равен входному параметру, то возвращаем true (является квадратом), если он больше входного параметра, то false (не является квадратом).
|
||
```javascript
|
||
function isSqrt (value) {
|
||
if (isInt(value)) { // Проверим тип
|
||
let counter = 1;
|
||
while (counter * counter <= value) {
|
||
if (counter * counter == value) {
|
||
return true;
|
||
}
|
||
counter++;
|
||
}
|
||
return false;
|
||
}
|
||
else {
|
||
throw new Error("Wrong type of first argument: required integer");
|
||
}
|
||
}
|
||
``` |