拉登。。。。
已知面值1,2,5这三种硬币的个数。 问不能组成的最小面值是多少
#include<iostream>
#include<cstring>
using namespace std;
int a[9001],b[9001];
int main()
{
int n[3],w[3];
w[0]=1;
w[1]=2;
w[2]=5;
while(cin>>n[0]>>n[1]>>n[2])
{
if(n[0]==0&&n[1]==0&&n[2]==0) break;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
a[0]=1;
for(int i=0;i<3;i++)
{
for(int j=0;j<9001;j++)
{
for(int k=0;k<=n[i]&&k*w[i]+j<9001;k++) b[k*w[i]+j]+=a[j];
}
for(int j=0;j<9001;j++) a[j]=b[j];
memset(b,0,sizeof(b));
}
for(int i=1;i<9001;i++)//求不能组成的最小面额
{
if(a[i]==0)
{
cout<<i<<endl;
break;
}
}
}
}