北大ACM poj1555

来源:互联网 发布:通信网络结构 编辑:程序博客网 时间:2024/05/17 06:23
//1555 #include<stdio.h>#include<math.h>main(){int s[9],flag;int i;while(~scanf("%d%d%d%d%d%d%d%d%d",&s[0],&s[1],&s[2],&s[3],&s[4],&s[5],&s[6],&s[7],&s[8])){flag=0;//是否有不为0的系数的标志 for(i=0;i<9;i++){if(s[i]==0)continue;//如果系数是0,继续找下一个 else{if(i>=0&&i<7)//如果位数是8~2 {if(s[i]==1||s[i]==-1)//如果是1和-1,不用输出系数 {if(flag) printf(" %c x^%d",s[i]>0?'+':'-',8-i);else{if(s[i]<0)printf("-");printf("x^%d",8-i);}}else if(flag)printf(" %c %dx^%d",s[i]>0?'+':'-',s[i]>0?s[i]:-s[i],8-i);elseprintf("%dx^%d",s[i],8-i);}else if(i==7)//如果是第一位,不用输出阶数 {if(s[i]==1||s[i]==-1){if(flag) printf(" %c x",s[i]>0?'+':'-');else{if(s[i]<0)printf("-");printf("x");}}else if(flag)printf(" %c %dx",s[i]>0?'+':'-',s[i]>0?s[i]:-s[i]);elseprintf("%dx",s[i]);} else if(i==8)//如果是第零位不用输出系数和阶数 {if(s[i]>0){if(flag) printf(" + %d",s[i]);elseprintf("%d",s[i]);} else{if(flag)printf(" - %d",-s[i]);elseprintf("%d",s[i]);}} flag=1;} }if(flag==0)printf("0");//如果系数全是0,则输出0 printf("\n"); }} 

原创粉丝点击