POJ1060

问题描述:多项式运算,此题涉及多项的加法、减法、乘法、取模四大运算。最后将多项式的计算结果表达式输出。
解题思路:对多项式的系数采用一维数组输入,对于多项式的次数,用数组下标的大小对应表示。注意:这里为了编写思路的方便,直接将输入的系数按数组从小到大存放,最后进行运算的时候,需要再加以变换。
code(c)

#include <stdio.h>
#include<string.h>
#define MAX 10010
int f[MAX],g[MAX],h[MAX],temp[MAX];
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int i,j,x,mul,imax,a;
        memset(h,0,sizeof(h));
        memset(temp,0,sizeof(temp));
        scanf("%d",&f[0]);
        for(i=1;i<=f[0];i++)
            scanf("%d",&f[i]);
        scanf("%d",&g[0]);
        for(i=1;i<=g[0];i++)
            scanf("%d",&g[i]);
        scanf("%d",&h[0]);
        for(i=1;i<=h[0];i++)
            scanf("%d",&h[i]);
        imax=0;
        for(i=1;i<=f[0];i++)
        {
            if(f[i]==1)
                for(j=1;j<=g[0];j++)
                {
                    if(g[j]==1)
                    {
                        mul=(f[0]+1-i)+(g[0]+1-j)-1;
                        temp[mul]++;
                        if(temp[mul]%2==0)
                            temp[mul]=0;
                    }
                }
        }
        for(i=1;i<MAX;i++)
        {
            if(temp[i]==1)
                imax=i;
        }
        temp[0]=imax;
        a=imax;
        while(imax>=h[0])
        {
            x=imax-h[0];
            for(j=1;j<=h[0];j++)
            {
                if(h[j]==1)
                {
                    temp[h[0]-j+1+x]--;
                    if(temp[h[0]-j+1+x]==-1)
                        temp[h[0]-j+1+x]=1;
                }

            }

            for(i=1;i<=a;i++)
            {
                if(temp[i]==1)
                {
                    imax=i;
                    temp[0]=i;
                }
            }
        }
        printf("%d ",temp[0]);
        for(i=temp[0];i>=1;i--)
            printf("%d ",temp[i]);
        printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值