《能力全面综合提升题单》part2.1.2 P1067多项式输出
原题跳转
本人思路:直接模拟题意即可,但是有几个易错的地方:
1:开头如果为正数,不需要输出符号
2:系数为1或-1时只输出符号不输出系数
3:系数为0时不输出该项
4:x^0不输出,仅输出系数
# include <iostream>
# define endl '\n'
using namespace std;
signed main()
{
std::ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n; cin >> n;
int a[n + 10];
for (int i = 0; i <= n; i++)
{
cin >> a[i];
}
for (int i = 0; i <= n; i++)
{
if (i == 0 )//第一项
{
if (n == 0)
{
cout << a[i];
continue;
}
if (a[i] == 1)
{
cout << "x^" << n - i;
continue;
}
if (a[i] == -1)
{
cout << '-' << "x^" << n - i;
continue;
}
if (a[i] == 0) continue;
else
{
cout << a[i] << "x^" << n - i;
continue;
}
}
if (i == n)//最后一项
{
if (a[i] > 0) cout <<'+'<< a[i];
if (a[i] < 0) cout << a[i];
break;
}
if (i == n - 1)//倒数第二项
{
if (a[i] > 0)
{
if (a[i] == 1) cout << '+' <<'x';
else cout << '+' << a[i] << 'x';
}
if (a[i] == 0) continue;
if (a[i] < 0)
{
if (a[i] == -1) cout << '-' << 'x';
else cout << a[i] << 'x';
}
continue;
}
//普通项
if (a[i] > 0)
{
if (a[i] == 1) cout << '+' << "x^" << n - i;
else cout << '+' << a[i] << "x^" << n - i;
}
if (a[i] == 0) continue;
if (a[i] < 0)
{
if (a[i] == -1) cout << '-' << "x^" << n - i;
else cout << a[i] << "x^" << n - i;
}
}
return 0;
}