标签:
试题描述
|
一元 n 次多项式可用如下的表达式表示:f(x) =anxn + an−1 xn−1 + ... + a1 x + a0 ,an ≠ 0 其中,aixi称为i 次项,ai 称为i 次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式: |
输入
|
共有2行,第一行1个整数,n表示一元多项式的次数。第二行有n+1个整数,其中第i个整数表示第n-i+1次项的系数,每两个整数之间用空格隔开。
|
输出
|
共1行,按题目所述格式输出多项式。
|
输入示例
|
【输入样例 1】
5 100 -1 1 -3 0 10 【输入样例2】 3 -50 0 0 1 |
输出示例
|
【输出样例 1】100x^5-x^4+x^3-3x^2+10
【输出样例2】-50x^3+1 |
其他说明
|
【数据范围】1≤n≤100,多项式各次项系数的绝对值均不超过100。
|
本题看起来容易,其实想要考虑全面也不是太容易。要逻辑清晰,一步步来。
1 #include <iostream> 2 3 using namespace std; 4 int a[101]; 5 int main() 6 { 7 int n,i,c=1; 8 cin>>n; 9 int f=n; 10 for(i=1;i<=n+1;i++) cin>>a[i]; 11 for(i=1;i<=n+1;i++) 12 { 13 if(c==1) 14 { 15 if(f==1) 16 { 17 if(a[i]==1) {cout<<"x";f--;} 18 else if(a[i]==-1) {cout<<"-x";f--;} 19 else if(a[i]==0) f--; 20 else {cout<<a[i]<<"x";f--;} 21 } 22 else if(f==0) cout<<a[i]; 23 else 24 { 25 if(a[i]==1) {cout<<"x^"<<f;f--;} 26 else if(a[i]==-1) {cout<<"-x^"<<f;f--;} 27 else if(a[i]==0) f--; 28 else {cout<<a[i]<<"x^"<<f;f--;} 29 } 30 c++; 31 } 32 else 33 { 34 if(a[i]>0) cout<<"+"; 35 else if(a[i]==0) {f--;continue;} 36 if(f==1) 37 { 38 if(a[i]==1) {cout<<"x";f--;} 39 else if(a[i]==-1) {cout<<"-x";f--;} 40 else if(a[i]==0) f--; 41 else {cout<<a[i]<<"x";f--;} 42 } 43 else if(f==0) {cout<<a[i];continue;} 44 else 45 { 46 if(a[i]==1) {cout<<"x^"<<f;f--;} 47 else if(a[i]==-1) {cout<<"-x^"<<f;f--;} 48 else if(a[i]==0) f--; 49 else {cout<<a[i]<<"x^"<<f;f--;} 50 } 51 } 52 53 } 54 return 0; 55 }
标签:
原文地址:http://www.cnblogs.com/YXY-1211/p/5136831.html