javascript coderbyte CoinDeterminer

时间:2014-06-09 05:44:04

标签: javascript recursion

我完全不知道这个问题。基本上,给定数字,返回所需数量最少的硬币加起来给出的数字:

coinsOriginal = [1,5,7,9,11]

如果使用的硬币必须是唯一的,我会尝试递归一样,总计数组,将其向下切1个元素直到零长度,然后递归再次尝试使用混洗数组。 ..

 count = 0;
'function recurse (coinsArr) {
    if (coinsArr.reduce(total) == goalNumber)
       return coinsArr.length; // ie return true

    else {

       if (coinsArr.length == 0){
          newArr = coinsArr.slice(1);
          return recurse(newArr);

       } else if (count == 1000){
         return false

       } else {
         newArr = yatesfischershuffle(coinsOriginal);
         count++;
         return recurse(newArr);
       }

    }
}

然而,问题实际上表明数字可以多次使用。这让我思考循环内循环内的循环。我想过尝试按需递归添加越来越多的循环。我想过尝试一定数量的循环。但是,如果数字是250,那将需要9个循环???

是否需要某种memoization表/对象?有什么提示吗?

使用JavaScript语言,让函数CoinDeterminer(num)获取输入,该输入将是1到250之间的整数,并返回一个整数输出,指定最少的硬币数,添加时,等于输入整数。硬币基于如下系统:有硬币代表整数1,5,7,9和11.所以例如:如果num是16,那么输出应该是2,因为你可以用数字16来实现硬币9和7.如果num是25,那么输出应该是3,因为你可以用11,9和5个硬币或9,9和7个硬币达到25个。

0 个答案:

没有答案