忘了最后一个else if的循环里加上后面的ci==0
else if(ci==-1||ci==0);
但是还是过不了第三个,别的都能过?输出结果都一样,为啥啊?
by 一世我染 @ 2023-08-27 10:47:18
@[一世我染](/user/124966) 用```cin```吧,应该是字符的问题,是什么我就不知道了.这题枚举每个情况就能过.
------------
```
#include<bits/stdc++.h>
using namespace std;
long long n,a[1001000];string b;
int main()
{
cin>>n;
for(int i=1;i<=n+1;i++)
cin>>a[i];
if(n==0){cout<<a[1];return 0;}//n=0,直接输出
for(int i=1;i<=n+1;i++)
{
if(a[i]==0) continue;//字符为零,跳过
else if(n-i+1==1&&a[i]==1)//枚举指数为1、系数为1
cout<<"+x";
else if(n-i+1==1&&a[i]<0)//枚举指数为1、系数为负
cout<<a[i]<<"x";
else if(n-i+1==1&&a[i]>1)//枚举指数为1、系数为大于1正数
cout<<"+"<<a[i]<<"x";
else if(n-i+1==0&&a[i]>0)//枚举指数为0、系数为正
{cout<<"+"<<a[i];break;}
else if(n-i+1==0&&a[i]<0)//枚举指数为0、系数为负
{cout<<a[i];break;}
else if(a[i]==1&&i==1)//枚举指数为n、系数为1
cout<<"x^"<<n;
else if(a[i]==1&&i>1)//枚举指数为n、系数为大于1正数
cout<<"+x^"<<n-i+1;
else if(a[i]==-1)//枚举系数为-1
cout<<"-x^"<<n-i+1;
else if(a[i]<0)//枚举系数为小于-1负数
cout<<a[i]<<"x^"<<n-i+1;
else if(a[i]>1&&i>1)//枚举指数小于n、系数大于1
cout<<"+"<<a[i]<<"x^"<<n-i+1;
else if(a[i]>1&&i==1)//枚举指数等于n、系数大于1
cout<<a[i]<<"x^"<<n;
}
}
```
by CGk_by_SA @ 2023-09-06 23:47:53
@[jiangkaiqi](/user/1040169) 好的,感谢解答了!
by 一世我染 @ 2023-09-11 17:30:13