Я попытался создать функцию HCF в javascript, используя рекурсивные функции, как показано в приведенном ниже коде. Но почему-то это работает только для точных кратных чисел (например, 2,4; 52,104 и т. д.). Со-простые числа также дают «неопределенность». Пожалуйста, помогите мне исправить ошибку.
Я попытался заменить переменную локальной области видимости c = a % b. Но и это не получается.
Код:
function hcf(a, b) {
if (b == 1){
return 1;
} else if (a % b == 0){
return b;
} else {
hcf(a,a % b);
}
}
Тестовые случаи:
hcf(4,2);
hcf(108,52);
hcf(9,4);
Ожидаемые результаты:
2
4
1
Фактические результаты:
2 [Correct]
undefined [Incorrect]
undefined [Incorrect]
1 ответ
В рекурсивном случае требуется оператор return
.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
else
отсутствуетreturn
.