hdu2069换硬币

题目坑点:硬币数不能超100

import java.util.Scanner;

public class hdu2069 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] dp = new int[251][101]; //[i][j] 表示j个硬币换i钱数
        for (int i = 0; i <=100 ; i++) {
            dp[i][i] = 1;
        }

        int[] mf = {1,5,10,25,50};
        for (int i = 1; i <=4 ; i++) {
            for (int j = 1; j <=100 ; j++) {
                for (int k = mf[i]; k <=250 ; k++) {
                    dp[k][j] += dp[k-mf[i]][j-1];
                }
            }
        }
        int[] res = new int[251];
        for (int i = 0; i < 251; i++) {
            for (int j = 0; j < 101; j++) {
                res[i] += dp[i][j];
            }
        }

        while (sc.hasNext()){
            int n = sc.nextInt();
            System.out.println(res[n]);
        }
    }
}

 

posted @ 2025-03-09 21:54  XiaohuangTX  阅读(8)  评论(0)    收藏  举报