hdu 1085 http://acm.hdu.edu.cn/showproblem.php?pid=1085

#include<stdio.h>
#include<string.h>
#define max  8010
int c1[max],c2[max];//c1和c2的坐标代表指数的大小 c1与c2里面存的是该指数的系数。
int main()//c1存的是前一个多项式的属性 c2存的是后一个多项式的属性 需要不断更新 模拟多项式的乘法运算。
{
    int num[4];
    int sumNum;
    int test[4]= {1,2,5};
    while(scanf("%d%d%d",&num[0],&num[1],&num[2])!=EOF)
    {
        if(num[0]==0&&num[1]==0&&num[2]==0)
            break;
            memset(c1,0,sizeof(c1));
            memset(c2,0,sizeof(c2));
        sumNum=test[0]*num[0];
        for(int i=0; i<=sumNum; i++)
        {
            c1[i]=1;
            c2[i]=0;
        }
        for(int i=1; i<3; i++)
        {
            sumNum+=test[i]*num[i];
            for(int j=0; j<=sumNum; j++)
            {
                for(int k=0; k+j<=sumNum; k+=test[i])
                {
                    c2[k+j]+=c1[j];
                }
            }
            for(int i=0; i<=sumNum; i++)
            {
                c1[i]=c2[i];
                c2[i]=0;
            }
        }
        int pox;
        //for(pox=1;pox<=20;pox++)
         //printf("%d\n",c1[pox]);
        for(pox=1; pox<=max; pox++)
            if(c1[pox]==0)
                break;
        printf("%d\n",pox);
    }
    return 0;
}

你可能感兴趣的:(hdu 1085 http://acm.hdu.edu.cn/showproblem.php?pid=1085)