[精品]多项式表现题目
CS329:多项式表示问题(Polynomial Showdown)
(来源:POJ 1555 ZOJ 1720)
问题描述:
给定多项式的系数,要求输出多项式的可读格式,并去掉多余的字符,多项式中自变量的幂的次数为8到0。例如,假设给定的系数为0、0、0、1、22、-333、0、1和-1,则输出的多项式为:x^5+22x^4-333x^3+x-1。
在表示多项式时要遵守以下规则:
(1)多项式的各项必须按幂的次数由高到低的顺序排列。 (2)指数用符号“^”来表示。
(3)常数项仅用常数来表示,不需要乘以x^0。
(4)只有系数非0的项才需要表示出来。如果所有项的系数都为0,则要输出常数项,即0,尽管这一项的系数也为0。
(5)二元运算符“+”和“-”左右两边各有一个空格符号,除此之外,表达式中没有多余
的空格符号。
(6)如果多项式的第1项系数为正,则系数前面没有正号;如果第1项的系数为负数,则要系数前有符号,例如:-7x^2+30x+66。
(7)对系数为负数的项,除非该项是第1项,否则该项的系数应该表示成减去对应的正数项,也就是说,不能输出“x^2 + - 3x”,而应该输出“x^2-3x”。 (8)常数1和-1只能出现在常数项,也就是说,不能输出“-1x^3+1x^2+3x^1”,而应该输出“-x^3+x^2+3x-1”。
输入:
输入文件中包含若干个测试数据,每个测试数据占一行,为多项式的9个系数,用空格隔开,每个系数的绝对值不超过1000。
输出:
对输入文件每个测试数据所给出的9个系数,输出一行,为对应的多项式。
样例输入:
0 0 0 1 22 -333 0 1 -1
0 0 0 0 0 0 -55 5 0
样例输出:
x^5 + 22x^4 - 333x^3 + x - 1
-55x^2 + 5x
参考程序(zzg):
#include
#include
int main()
{
int input[10];//用来存储9个系数
int flag=0; //用来标识是第几个非0的系数
char str[10]="\0";//用来显示x^形式
int i,j;
//freopen("in.txt","r",stdin);
//读入9个系数
j=0;
while(scanf("%d",&input[j%9])!=EOF)
{
j++;
if(j%9!=0) continue;
flag=0;
for(i=0;i<8;i++)
{
if(i<7)
{
str[0]='x';
str[1]='^';
str[2]=(8-i)+'0';
str[3]='\0';
}
else if(i==7)
{
str[0]='x';
str[1]='\0';
}
if(input[i]!=0)
{
if(flag==0) //第一个非0系数
{
if(input[i]==1)
printf("%s",str);
else if(input[i]==-1)
printf("-%s",str);
else
printf("%d%s",input[i],str);
}
else
{
if(input[i]==1)
printf(" + %s",str);
else if(input[i]==-1)
printf(" - %s",str);
else if(input[i]>0)
printf(" + %d%s",input[i],str);
else
printf(" - %d%s",-1*input[i],str);
}
flag++;
}
}
if(input[8]!=0)
{
if(flag==0)
{
printf("%d",input[8]);
}
else
{
if(input[8]>0)
printf(" + %d",input[8]);
else
printf(" - %d",-1*input[8]);
}
flag++;
}
if(flag==0) //全0
printf("0");
printf("\n");
}
return 0;
}
本文档为【[精品]多项式表现题目】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。