簡體   English   中英

計算代表n分的可能組合的數量

[英]Calculate number of possible combinations to represent n cent

問題是 -

給定無限數量的四分之一(25美分),一角錢(10美分),鎳(5美分)和幾美分(1美分),編寫代碼以計算表示n美分的方式數。

誰能告訴我我的代碼有什么問題嗎? 還是正確的? 它是用Java編寫的。

Int[] data = new int[n];

Public int numWays(int n) {

If (n == 0 ) {
    Return 0;
}

If (n==1) {
    Return 1;
}

If (data[n] != -1) {
    Return data[n];
}

Return Data[n] = numWays(n-25) + numWays(n-10) + numWays(n-5) +numWay(n-1);
}

此代碼存在多個問題:

  • Int[] data = new int[n];
    Int不是Java中定義的類型(猜測這只是一個錯字), n沒有在范圍內定義(我想您是指numWays的輸入)
  • Public應該public
  • int[]初始化為0作為默認值,而不是-1

除此之外:為什么要數組? 這對於內存而言效率極低,並且無法以您認為的方式工作。 HashMap替換這部分代碼,或者-因為您顯然是初學者-為簡單起見,將其完全刪除。 並且您應該添加范圍檢查。 到目前為止,您可能會生成n < 0的方法調用,該方法調用將以StackoverflowException結尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM