【发布时间】:2014-02-12 17:49:05
【问题描述】:
找出计算金额所需的硬币数量,以便需要最少数量的硬币。硬币的价值为 1,3 和 5。 这段代码有什么问题?
#include<iostream>
using namespace std;
int main()
{
int i,j,sum,coins[]={1,3,5}, min[sum];
cin>>sum;
for(i=0;i<=sum;i++)
min[i]=999;
min[0]=0;
for(i=1;i<=sum;i++)
{
for(j=0;j<3;j++)
{
if((coins[j]<=i) && ( (min[i-coins[ j ]] + 1) < min[i] ))
{
min[i]=min[i-coins[j]] +1;
cout<<i<<"="<<min[i];cout<<endl;
}
}
}
cout<<min[sum];
return 0;
}
【问题讨论】:
-
您在寻找什么输出,会发生什么?对于这个简单的问题,您的代码似乎没有多大意义。为什么需要
sum大小的数组? -
它缺少 cmets。除此之外,很难说。