如何修复递归hcf函数?

时间:2019-10-29 18:43:16

标签: javascript

我尝试使用以下代码中给出的递归函数在javascript中制作HCF函数。但是以某种方式,这仅适用于数字的精确倍数(例如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 个答案:

答案 0 :(得分:2)

递归案例需要一个return语句。