题目描述:
今有无限的面值为1,5,11元的硬币。
给定n,问:至少用多少枚硬币,可以恰好凑出n元?
输入格式:
一个整数n。
输出格式:
一个整数,表现最少的硬币数。
样例输入:
15
样例输出:
3
提示:
数据范围:1≤n≤10000
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include <bits/stdc++.h>
using namespace std;
int f[10001]={};
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
f[i]=f[i-1]+1;
if(i-5>=0){
f[i]=min(f[i],f[i-5]+1);
}
if(i-11>=0){
f[i]=min(f[i],f[i-11]+1);
}
}
cout<<f[n];
return 0;
}