洛谷p1067
题目https://www.luogu.org/problemnew/show/P1067
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 typedef long long ll; 6 int main() 7 { 8 int n; 9 int a[1010]; 10 int f=0; 11 scanf("%d",&n); 12 if(n==0) 13 { 14 int m; 15 cin>>m; 16 printf("%d\n",m); 17 } 18 else 19 { 20 for(int i=0;i<=n;i++) 21 { 22 cin>>a[i]; 23 } 24 int c=n; 25 for(int i=0;i<n-1;i++) 26 { 27 if(a[i]==0) 28 { 29 c--; 30 continue; 31 } 32 else if(a[i]>0&&f==0) 33 { 34 if(a[i]==1) 35 { 36 printf("x^%d",c); 37 c--; 38 f=1; 39 } 40 else 41 { 42 printf("%dx^%d",a[i],c); 43 c--; 44 f=1; 45 } 46 } 47 else if(a[i]<0&&f==0) 48 { 49 if(a[i]==-1) 50 { 51 printf("-x^%d",c); 52 c--; 53 f=1; 54 } 55 else 56 { 57 printf("%dx^%d",a[i],c); 58 c--; 59 f=1; 60 } 61 } 62 else if(a[i]>0&&f==1) 63 { 64 if(a[i]==1) 65 { 66 printf("+x^%d",c); 67 c--; 68 } 69 if(a[i]!=1) 70 { 71 printf("+%dx^%d",a[i],c); 72 c--; 73 } 74 } 75 else if(a[i]<0&&f==1) 76 { 77 if(a[i]==-1) 78 { 79 printf("-x^%d",c); 80 c--; 81 } 82 else 83 { 84 printf("%dx^%d",a[i],c); 85 c--; 86 } 87 } 88 } 89 if(a[n-1]!=0) 90 { 91 if(a[n-1]>0) 92 { 93 if(a[n-1]==1) 94 { 95 printf("+x"); 96 } 97 else 98 { 99 printf("+%dx",a[n-1]); 100 } 101 } 102 if(a[n-1]<0) 103 { 104 if(a[n-1]==-1) 105 { 106 printf("-x"); 107 } 108 else 109 { 110 printf("%dx",a[n-1]); 111 } 112 } 113 } 114 if(a[n]!=0) 115 { 116 if(a[n]>0) 117 { 118 printf("+%d\n",a[n]); 119 } 120 if(a[n]<0) 121 { 122 printf("%d\n",a[n]); 123 } 124 } 125 } 126 if(f==0) 127 { 128 printf("0\n"); 129 } 130 return 0; 131 }
其实还是自己太菜
大神代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n,a; 5 cin>>n; 6 for(int i=n;i>=0;i--){ 7 cin>>a; 8 if(a){ 判0系数 9 if(i!=n&&a>0)cout<<"+"; 根据正负、是否为最高此项决定加号 10 if(abs(a)>1||i==0)cout<<a; 输出系数(系数不为正负1或指数为0) 11 if(a==-1&&i)cout<<"-"; -1系数特判,常数项已特判 12 if(i>1)cout<<"x^"<<i; 二次及以上输出指数 13 if(i==1)cout<<"x"; 一次项 14 } 15 } 16 }