首页 > 解决方案 > 多个数的最大公约数

问题描述

我想出了这段代码来解决多个数字的最大公约数,但是,由于使用了递归,如果一个数字太大(比如 4 位及以上),则超出了最大调用堆栈大小。我可以改进代码来解决这个问题吗?

let arr = [10, 40, 395]
let maxNum = Math.max(...arr) 
						
function getGCD(){    			
    arr.forEach(function (arrNum){
        if (maxNum === 0){
            return 1;
        }

	if (arrNum % maxNum === 0) { 
	  return maxNum;
	}

        maxNum--; 
        getGCD();    	
    });

    return maxNum;
}

console.log (getGCD())

标签: javascript

解决方案


推荐阅读