使用 Javascript 的递归
Recursion using Javascript
我仍在尝试围绕递归进行包装,就在我认为我开始理解它时,一个问题出现了,我不知道该怎么办。
问题是:
Catsylvanian的钱是一件奇怪的事情:他们每个面额都有一枚硬币(包括零!Catsylvania的一台摇摇欲坠的零钱机会取出任何价值N的硬币,并返回3个新硬币,价值分别为N/2,N/3和N/4(向下舍入)。
编写一个函数wonkyCoins(num)
,如果您将所有非零硬币都送回机器,并不断将它们送回机器,直到只剩下零价值硬币,则返回您剩下的硬币数量。
我想出的解决方案(不起作用,无限循环)是:
function wonkyCoins(num){
if (num == 0){
return 1;
}
else {
return (wonkyCoins(num/4) + wonkyCoins(num/3) + wonkyCoins(num/2));
}
}
你们能提供的任何帮助都会很棒!
您没有像您的要求状态那样向下舍入!
function wonkyCoins(num){
num = Math.floor(num); //round num down to the nearest integer
if (num == 0){
return 1;
}
else {
return (wonkyCoins(num/4) + wonkyCoins(num/3) + wonkyCoins(num/2));
}
}
当您不向下舍入时,整数除法会为您提供浮点数,因此它们永远不会等于 0。
你的解决方案非常接近,除了JavaScript将这些数字转换为浮点表示(因此你永远不会真正达到零)
解决此问题的一种可能方法是在检查零之前强制 num 为整数值
另一种可能的解决方案是检查<0.5 或其他阈值。
相关文章:
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- 递归JavaScript在第一次传递后返回
- 使用回调的递归Javascript函数不起作用
- 如何从外部暂停和停止递归 JavaScript 函数
- 从递归 Javascript 函数中返回一个变量
- 太多的递归JavaScript
- 扁平化多个嵌套数组的数组而不带递归 - javascript
- 递归 javascript 函数不会返回到父调用数据
- 另一个递归JavaScript函数
- 使用递归JavaScript函数进行同步的优点和缺点
- 用于联机状态的递归Javascript函数
- 简单递归Javascript函数返回Undefined
- 返回语句在递归javascript算法,如何返回所有的方式堆栈
- 无限循环与递归javascript函数
- 递归javascript代码出现问题
- 带参数的递归javascript函数
- 变量在递归javascript函数中变为未定义
- 内存泄漏递归javascript函数在IE,FF,谷歌浏览器
- 请解释一下这个递归javascript函数
- 尝试将递归JavaScript方法移植到C#,这种方法是否有意义