出入n表示钱数x表示一种水的价格y表示另一种水的价格,尽可能花光钱数,那么最少余下多少钱,输入nxy,输出余数 生成C++代码,用动态规划来做
时间: 2024-05-25 14:19:30 浏览: 55
动态规划算法最少费用问题的C++代码
5星 · 资源好评率100%
#include <stdio.h>
#include <string.h>
#define MAX_N 1000000
#define INF 0x3f3f3f3f
int dp[MAX_N + 1];
int min(int a, int b) {
return a < b ? a : b;
}
int main() {
int n, x, y;
scanf("%d%d%d", &n, &x, &y);
memset(dp, INF, sizeof(dp));
dp[0] = 0;
for (int i = 1; i <= n; i++) {
if (i >= x) {
dp[i] = min(dp[i], dp[i - x] + 1);
}
if (i >= y) {
dp[i] = min(dp[i], dp[i - y] + 1);
}
}
printf("%d\n", n - dp[n]);
return 0;
}
阅读全文