解题思路:
注意事项:
参考代码:
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 人评分
C语言训练-求PI* (C语言代码)(正确结果竟然是谜一样的3.141591)浏览:1301 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:653 |
程序员的表白 (C语言代码)浏览:1470 |
弟弟的作业 (C++代码)浏览:1304 |
A+B for Input-Output Practice (V) (C++代码)浏览:451 |
【数组的距离】 (C语言代码)浏览:738 |
最小公倍数 (C语言代码)浏览:863 |
printf基础练习2 (C语言代码)浏览:305 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:457 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:678 |