首页 > 其他 > 详细

硬币问题 (动态规划)

时间:2020-04-24 23:04:41      阅读:64      评论:0      收藏:0      [点我收藏+]

有n种硬币,面值分别为v1,v2,....,vn,数量无限。输入非负整数s,选用硬币,使其和为s。要求输出最少的硬币组合。

#include<bits/stdc++.h>
using namespace std;
const int money=251;
const int value=5;
int type[value]={1,5,10,25,50};
int MIN[money];
void solve(){
    for(int k=0;k<money;k++)
    MIN[k]=INT_MAX;
    MIN[0]=0;
    for(int j=0;j<value;j++)
    for(int i=type[j];i<money;i++)
    MIN[i]=min(MIN[i],MIN[i-type[j]]+1);
} 
int main()
{
    int s;
    solve();
    while(cin>>s)
    cout<<MIN[s]<<endl;
    return 0;
}

 

硬币问题 (动态规划)

原文:https://www.cnblogs.com/hrlsm/p/12770434.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!