動態規劃---求硬幣最優解
#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;
}
相關文章
- 動態規劃-硬幣組合數目動態規劃
- 動態規劃求最長降序序列動態規劃
- 動態規劃-最少硬幣組合問題動態規劃
- [動態規劃] 三、最少硬幣組成某面值動態規劃
- 詳解動態規劃最少硬幣找零問題–JavaScript實現動態規劃JavaScript
- 使用動態規劃完美解決硬幣找零問題(Python)動態規劃Python
- 詳解動態規劃最少硬幣找零問題--JavaScript實現動態規劃JavaScript
- PHP使用動態規劃實現最優紅包組合PHP動態規劃
- 斜率優化動態規劃優化動態規劃
- 最優二叉查詢樹—動態規劃C++動態規劃C++
- 動態規劃求解最大子段和 (兩種寫法+還原最優解)動態規劃
- 動態規劃:最長上升子序列動態規劃
- 最長上升子序列動態規劃動態規劃
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 【動態規劃】求最大連續bit數動態規劃
- 動態規劃8:最優編輯str1-->str2動態規劃
- 動態規劃解最長迴文子序列並優化空間複雜度動態規劃優化複雜度
- 動態規劃解題方法動態規劃
- 【動態規劃(一)】動態規劃基礎動態規劃
- 動態規劃-最長上升子序列模型動態規劃模型
- 動態規劃(最長公共子序列LCS)動態規劃
- 詳解動態規劃最長公共子序列--JavaScript實現動態規劃JavaScript
- 動態規劃動態規劃
- 動態規劃 擺花 題解動態規劃
- 力扣-動態規劃全解力扣動態規劃
- [動態規劃] 六、最長迴文子串動態規劃
- 動態規劃7:最長上升子序列LIS動態規劃
- 運籌優化(七)--動態規劃解析優化動態規劃
- 動態規劃之01揹包問題(最易理解的講解)動態規劃
- 動態規劃求解最長上升子序列問題動態規劃
- 最長公共子序列問題—動態規劃sdut動態規劃
- leetcode題解(動態規劃)LeetCode動態規劃
- 動態規劃分析動態規劃
- 動態規劃(DP)動態規劃
- 動態規劃初步動態規劃
- 模板 - 動態規劃動態規劃
- 動態規劃法動態規劃