動態規划之硬幣組合


題目描述:現有硬幣六種,分別為1元、5元、10元、20元、50元、100元,假設每種硬幣數量均無限多,問用它們來湊夠N元有多少種組合方式。
package
ers; import java.util.Scanner; /* * 動態規划硬幣組合問題 * */ public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int n = sc.nextInt(); int coin[] = {1,5,10,20,50,100}; //dp[i][j]表示用前i種硬幣湊成j元的組合數 long[][] dp = new long[7][n+1]; for(int i = 1; i <=n; i++) { dp[0][i]=0; //用0種硬幣湊成i元的組合數為0 } for(int i = 0; i <=6; i++) { dp[i][0]=1; //用i種硬幣湊成0元的組合數為1,所有硬幣均為0個即可 } for(int i=1;i<=6;i++) { for(int j=1;j<=n;j++) { dp[i][j] = 0; for(int k =0;k<=j/coin[i-1];k++) { dp[i][j] += dp[i-1][j-k*coin[i-1]]; } } } System.out.print(dp[6][n]); } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM