0
已解决
这是我的错误代码:
#include <iostream>
using namespace std;
int a[1000],f[1000000];
int main()
{
int n,m;
cin>>n>>m;
while(n!=0||m!=0)
{
for(int i=1; i<=n; i++)
cin>>a[i];
f[0]=0;
for(int i=1; i<=m; i++)
{
f[i]=1000000;
for(int j=1; j<=n; j++)
{
if(i<a[j]) continue;
f[i]=min(f[i],f[i-a[j]]+1);
}
}
for(int i=m; i>=1; i--)
if(f[i]!=1000000)
{
cout<<f[i]<<endl;
break;
}
cin>>n>>m;
}
return 0;
}
1
1
@陆麟瑞 你试试这个
1 1
2
0 0
因为初始设定,所以没有输出
贾子昂在2018-03-11 13:28:45追加了内容
你应该在后面输出的循坏中加一个1的特判。
如果f[1]等于那个最大值,直接输出0
贾子昂在2018-03-11 13:33:04追加了内容
还有头文件
1
0
0
0
0
0
0
0
0




