ling_xi_ @ 2023-11-12 14:15:12
本地过了
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100002];
int main()
{
cin>>n;
for(int i=1;i<=n+1;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
if(i==1)
{
cout<<a[i]<<'x'<<'^'<<n-i+1;
}
if(a[i]>0 && a[i]!=1 && a[i]!=0 && i!=1)
{
cout<<'+'<<a[i]<<'x'<<'^'<<n-i+1;
}
else if(a[i]<0 && a[i]!=-1 && a[i]!=0 && i!=1)
{
cout<<a[i]<<'x'<<'^'<<n-i+1;
}
else if(a[i]>0 && a[i]==1 && i!=1)
{
cout<<'+'<<'x'<<'^'<<n-i+1;
}
else if(a[i]<0 && a[i]==-1 && a[i]!=0 && i!=1)
{
cout<<'-'<<'x'<<'^'<<n-i+1;
}
}
if(a[n+1]>0)
{
cout<<'+';
}
if(a[n+1]!=0)
{
cout<<a[n+1];
}
return 0;
}
by Operation0701 @ 2023-11-12 15:47:02
n = int(input())
def x(n):
s = ''
l = input().split()
for i in range(n+1):
if l[i][0] != '0':
if l[i][0] != '-':
if i == n:
s = s + f'+{l[i]}'
return s
if i == n-1:
if int(l[i]) == 1:
s = s + f'+x'
else:
s = s + f'+{l[i]}x'
continue
if int(l[i]) == 1:
s = s + f'+x^{n-i}'
continue
s = s + f'+{l[i]}x^{n-i}'
else:
if i == n:
s = s + l[i]
return s
if i == n-1:
if int(l[i]) == -1:
s = s + f'-x'
else:
s = s + f'{l[i]}x'
continue
if int(l[i]) == -1:
s = s + f'-x^{n-i}'
continue
s = s + f'{l[i]}x^{n-i}'
if i == n:
return s
print(x(n).strip('+'))
可以参考一下我愚蠢的枚举 你把一二三四测试点调试过了就能AC了 以下是1234测试点 //第一组(测试点1) 0 1 //第二组 2 0 100 2 //注意第一个数是0,第二个数不要加加号 //第三组 3 19 2 1 1 //注意末位的一不要省略 // 第四组 3 1 -100 0 0 // 注意末尾 0 不要输出
by ling_xi_ @ 2023-11-19 08:40:59
你这语言看着好奇怪
by kevin4 @ 2023-11-28 22:17:21
@lingxi python,不用担心
by TLE_ZBR @ 2024-01-31 14:45:54
其实这道题暴力枚举,只需要考虑多种情况就可以,涉及到的数学知识:整式的加减乘除
#include <iostream>
#include <cstdio>
using namespace std;
int n;
int a[105];
int main()
{
cin>>n;
for(int i=1;i<=n+1;i++)
{
cin>>a[i];
}
for(int i=1;i<=n+1;i++)
{
if(a[i]==0)
{
continue;
}
if(a[i]<0)
{
putchar('-');
a[i]=a[i]*(-1);
}
else
{
if(i!=1)
{
putchar('+');
}
}
if(i!=n+1&&(n-i+1)!=1)
{
if(a[i]==1)
{
cout<<"x^"<<n-i+1;
}
else
{
cout<<a[i]<<"x^"<<n-i+1;
}
}
else if(i==n)
{
if(a[i]==1)
{
cout<<"x";
}
else
{
cout<<a[i]<<"x";
}
}
else
{
cout<<a[i]<<endl;
}
}
return 0;
}
by ling_xi_ @ 2024-08-14 21:15:14