動態規劃---求硬幣最優解
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num[3];// number of kinds coin
int min=0;//define minimum
for(int i=0;i<3;i++)
{
scanf("%d",&num[i]);
if(i==0)
min=num[i];
if(min>num[i])
min=num[i];
}
int n;
scanf("%d",&n);
int sum[n+1];
for(int i=0;i<=n;i++)
{
sum[i]=0;
}
//sum[n+1]=0;
for(int i=1;i<min;i++)//assign a value to a number the minimum value
{
sum[i]=9999;
}
//printf("%d",min);
//sum[0]=0;
int h=0;
for(int i=0;i<=n;i++)
{
for(int s=0;s<3;s++)
{
if(i-num[s]>=0)
{
sum[i]=sum[i-num[s]]+1;
if(s==0)
h=sum[i];
if(s>0)
{
if(h>sum[i])
{
h=sum[i];
}
}
if(s==2)
sum[i]=h;
printf("%d\n",sum[i]);
}
}
}
if(sum[n]>n)
printf("-1");
else
printf("%d",sum[n]);
return 0;
}
相關文章
- 動態規劃求最長降序序列動態規劃
- 使用動態規劃完美解決硬幣找零問題(Python)動態規劃Python
- [動態規劃] 三、最少硬幣組成某面值動態規劃
- 詳解動態規劃最少硬幣找零問題–JavaScript實現動態規劃JavaScript
- 詳解動態規劃最少硬幣找零問題--JavaScript實現動態規劃JavaScript
- 斜率優化動態規劃優化動態規劃
- PHP使用動態規劃實現最優紅包組合PHP動態規劃
- 最優二叉查詢樹—動態規劃C++動態規劃C++
- 動態規劃求解最大子段和 (兩種寫法+還原最優解)動態規劃
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 動態規劃:最長上升子序列動態規劃
- 最長上升子序列動態規劃動態規劃
- leetcode題解(動態規劃)LeetCode動態規劃
- 動態規劃解題方法動態規劃
- 詳解動態規劃最長公共子序列--JavaScript實現動態規劃JavaScript
- 動態規劃(最長公共子序列LCS)動態規劃
- 動態規劃-最長上升子序列模型動態規劃模型
- 動態規劃 擺花 題解動態規劃
- 力扣-動態規劃全解力扣動態規劃
- 動態規劃動態規劃
- [動態規劃] 六、最長迴文子串動態規劃
- 運籌優化(七)--動態規劃解析優化動態規劃
- 動態規劃求解最長上升子序列問題動態規劃
- 最長公共子序列問題—動態規劃sdut動態規劃
- 01揹包動態規劃空間優化動態規劃優化
- [leetcode] 動態規劃(Ⅰ)LeetCode動態規劃
- 動態規劃法動態規劃
- 模板 - 動態規劃動態規劃
- 動態規劃初步動態規劃
- 動態規劃分析動態規劃
- 動態規劃(DP)動態規劃
- 北京大學郭煒-最長上升子序列 動態規劃講解動態規劃
- 圖解Leetcode組合總和系列——回溯(剪枝優化)+動態規劃圖解LeetCode優化動態規劃
- 動態規劃經典問題----最長公共子序列動態規劃
- 演算法(七):圖解動態規劃演算法圖解動態規劃
- 四步模板解決動態規劃動態規劃
- 【動態規劃】樹形DP完全詳解!動態規劃