看了一个多小时,什么也没看出来
上代码————————
【钞票问题】
你有无限多张1,5,11元的纸币,如何才能用最少的钱凑出这个数?
输入:
一个正整数n
输出:
最少需要的纸币(钞票)数量
#include
using namespace std;
int dp[1005]={0};
int main(){
int n;
ios::sync_with_stdio(0);//加快输入速度
cin >> n;
for(int i=1;i<=n;i++){
dp[i]=n;
}
dp[1]=dp[5]=dp[11]=1;
for(int i=1;i<=n;i++){
dp[i+1]=min(dp[i+1],dp[i]+1);
dp[i+5]=min(dp[i+5],dp[i]+1);
dp[i+11]=min(dp[i+11],dp[i]+1);
}
cout << dp[n];
return 0;
}
(AC AC AC AC RE)
题目网页:
小码王在线-在线少儿编程丨NOIP智能题库https://online.xiaomawang.com/cppcourse/learning/live?lessonId=762&courseId=69&lessonPartId=



