0
点赞
收藏
分享

微信扫一扫

硬币问题(递推)

看山远兮 2022-02-17 阅读 69

现有若干枚硬币,硬币面值分别为1,5,11,要凑出价值为w,至少需要多少枚硬币

样例输入:

15

样例输出:

3

提示:3*5=15

#include<iostream>
#include<cstring>
using namespace std;
int f[1010];

int main()
{
	int n;
	cin>>n;
	
	f[0]=0;
	for(int i=1;i<=n;i++)
	{
		int sum=1e8;
		if(i>=1) sum=min(f[i-1]+1,sum);
		if(i>=5) sum=min(f[i-5]+1,sum);
		if(i>=11) sum=min(f[i-11]+1,sum);
		f[i]=sum;
	}
	cout<<f[n];
	
	return 0;
}

 

举报

相关推荐

0 条评论