解题思路:
注意事项:
参考代码:
import java.util.Scanner;
public class BookBuying {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 读取输入的钱数
int[] dp = new int[n + 1]; // 初始化动态规划数组
dp[0] = 1; // 初始化dp[0]为1,表示钱数为0时有1种方案(不买书)
// 遍历每种面额的书的价格,更新方案种数
for (int ten = 0; ten * 10 <= n; ten++) {
for (int twenty = 0; ten * 10 + twenty * 20 <= n; twenty++) {
for (int fifty = 0; ten * 10 + twenty * 20 + fifty * 50 <= n; fifty++) {
for (int hundred = 0; ten * 10 + twenty * 20 + fifty * 50 + hundred * 100 <= n; hundred++) {
int sum = ten * 10 + twenty * 20 + fifty * 50 + hundred * 100;
dp[sum]++; // 更新对应的方案种数
}
}
}
}
// 输出方案种数
System.out.println(dp[n]);
scanner.close();
}
}
0.0分
1 人评分
有关字符,字符串的输入输出函数说明浏览:498 |
大神老白 (C语言代码)浏览:637 |
链表数据求和操作 (C语言代码)浏览:1035 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:607 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:622 |
P1044 (C++代码)浏览:550 |
世界杯来了浏览:1006 |
C语言训练-"水仙花数"问题2 (C语言代码)浏览:631 |
字符逆序 (C语言代码)浏览:984 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:921 |