关于计算数学多项式的代码

来源:互联网 发布:rayfile软件 编辑:程序博客网 时间:2024/05/22 05:02
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <cstdlib>#include <vector>using namespace std;int a[10000001],b[10000001],zhongjian[10000];int main(){    int i,j,jishu=2,n,m;//n为当前多项式的阶数,m为新的多项式的阶数,ij为计数变量,jishu为记下第几个多项式专用    printf("请输入第1个多项式的阶数:");    scanf("%d",&n);    printf("请输入每一项的系数:");    for(i=n;i>=0;i--)//输入当前多项式的阶数        scanf("%d",&a[i]);    printf("请输入第2个多项式的阶数:");    while(~scanf("%d",&m),m)    {        memset(zhongjian,0,sizeof(zhongjian));        jishu++;//新的多项式        printf("请输入每一项的系数:");        for(i=m;i>=0;i--)//输入新的多项式的阶数            scanf("%d",&b[i]);        //开始整合运算        for(i=0;i<=n;i++)            for(j=0;j<=m;j++)                zhongjian[i+j]=zhongjian[i+j]+a[i]*b[j];        for(i=0;i<=m+n;i++)//把计算好的多项式放在a中            a[i]=zhongjian[i];        printf(" f(x)= ");        for(i=m+n;i>=0;i--)        {            if(i==m+n)            {                if(a[i]!=1&&a[i]!=0)                    printf("%d x^%d ",a[i],i);                else if(a[i]==1)                    printf("x^%d ",i);            }            else if(i>1&&a[i]>0&&i!=m+n)            {                if(a[i]!=1)                    printf("+ %d x^%d ",a[i],i);                else                    printf("+ x^%d ",i);            }            else if(i>1&&a[i]<0&&i!=m+n)            {                if(a[i]!=1)                    printf("%d x^%d ",a[i],i);                else                    printf("x^%d ",i);            }            else if(i==1&&a[i]>0)            {                if(a[i]!=1)                    printf("%+ d x ",a[i],i);                else                    printf("+ x ",i);            }            else if(i==1&&a[i]<0)            {                if(a[i]!=1)                    printf("%d x ",a[i],i);                else                    printf("x ",i);            }            else if(i==0&&a[i]>0)                printf(" + %d ",a[0]);            else if(i==0&&a[i]<0)                printf("%d ",a[0]);        }        printf("\n\n请输入第%d个多项式的阶数:",jishu);    }    return 0;}

//该代码利用的就是模拟
0 0