Я попытался сделать функцию 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.

58613588