2 changed files with 63 additions and 0 deletions
@ -0,0 +1,29 @@
|
||||
{ |
||||
"number": "4", |
||||
"task": "Создайте функцию, которая принимает число в качестве входных данных и возвращает true, если сумма ее цифр имеет ту же четность, что и все число. В противном случае верните false.", |
||||
"vars": [ |
||||
[ |
||||
{ |
||||
"name": "n", |
||||
"desc": "Исходное число", |
||||
"data": "" |
||||
} |
||||
], |
||||
[ |
||||
{ |
||||
"name": "n", |
||||
"desc": "Исходное число", |
||||
"data": "25" |
||||
} |
||||
], |
||||
[ |
||||
{ |
||||
"name": "n", |
||||
"desc": "Исходное число", |
||||
"data": "14" |
||||
} |
||||
] |
||||
], |
||||
"scriptpath": "labs/lab4/main.js", |
||||
"complete": true |
||||
} |
||||
@ -0,0 +1,34 @@
|
||||
"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; |
||||
} |
||||
|
||||
if (!Number.isInteger(Number(n))) { |
||||
result.textContent = "Ошибка: проверка четности доступна только для целых чисел!"; |
||||
return; |
||||
} |
||||
|
||||
result.textContent = "Результат: " + checkParity(n); |
||||
} |
||||
|
||||
function checkParity(n) {
|
||||
return n % 2 == getSumOfDigits(n) % 2; |
||||
} |
||||
|
||||
function isNotNumber(val) { |
||||
return val.replace(/\s/g, '').length === 0 || isNaN(val); |
||||
} |
||||
|
||||
function getSumOfDigits(num) { |
||||
let result = 0; |
||||
for (let char of num) { |
||||
result += isNotNumber(char) ? 0 : Number(char); |
||||
} |
||||
return result; |
||||
} |
||||
Loading…
Reference in new issue