javascript - 多个数的最大公约数
问题描述
我想出了这段代码来解决多个数字的最大公约数,但是,由于使用了递归,如果一个数字太大(比如 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())
解决方案
推荐阅读
- matlab - 在 Matlab 中使用 Runge-Kutta 二阶射击方法的问题
- c - 便携式 Visual Studio 构建工具包和 cmake
- ajax - 我如何为每个登录的人使用 dribbble api?
- xml - Bash 将 XML 解析为逗号分隔的列表
- jquery - 如何使用带有对象的 jQuery 和 Javascript 数组创建任意数量的子列表?
- python - 尝试/除了python处理和int()函数
- python - 代码正在保存单独的文本文件,我们可以使用 pandas.dataframe() 以整洁干净的格式保存在 excel 中
- c# - 从 .ini 文件中读取波斯语字符串
- reactjs - 更新父组件状态时反应子组件卸载
- jquery - jQuery文件上传 - 文件被裁剪时文件名“未定义”