我尝试使用以下代码中给出的递归函数在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]
答案 0 :(得分:2)
递归案例需要一个return
语句。