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]); } } }