Я попытался сделать функцию 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
Hayden Gunk
1 ответ
В рекурсивном случае требуется оператор return
.
Новые вопросы
javascript
Для вопросов, касающихся программирования в ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (исключая ActionScript). Этот тег редко используется отдельно, но чаще всего ассоциируется с тегами [node.js], [jquery], [json] и [html].