#代码量有点长,但是思路简单、易于理解
参考代码:
#输入
a=int(input())
bb=list(map(int,input().strip().split()))
#列一个表,存储多项式的次方
s=bb[:]
ls=[i for i in range(a,1,-1)]
#第一个数不用考虑’+‘号
if s[0]:
if s[0]==1:
print(end='x^')
print(ls[0],end='')
elif s[0]==-1:
print(end='-x^')
print(ls[0],end='')
else:
print(s[0],end='x^')
print(ls[0],end='')
#从第2-》倒数第3个,情况相同
#注意:特殊情况:系数为1时不显示1,只显示x^,
#当0时不操作(跳过)
for i in range(1,a-1):
if s[i]==0:
continue
elif s[i]>0:
if s[i]==1:
print('+',end='x^')
print(ls[i],end='')
else:
print('+'+str(s[i]),end='x^')
print(ls[i],end='')
else : #是s[i]<0
if s[i]==-1:
print('-',end='x^')
print(ls[i],end='')
else:
print('-'+str(abs(s[i])),end='x^')
print(ls[i],end='')
#倒2个不同,系数+x,特殊情况:系数为1时不显示1
if s[-2]:
if s[-2]>0:
if s[-2]==1:
print('+x',end='')
else:
print('+'+str(abs(s[-2]))+'x',end='')
else: #s[-2]<0
if s[-2]==-1:
print('-x',end='')
else:
print('-'+str(abs(s[-2]))+'x',end='')
#是多少直接相+,或相-
#相加(补+号)
#相减(直接输出)
if s[-1]:
if s[-1]>0:
print('+'+str(s[-1]))
else: #s[-1]<0
print(s[-1])
0.0分
0 人评分
【偶数求和】 (C++代码)浏览:709 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C++代码)(手动优化一下计算)浏览:1284 |
字符串比较 (C语言代码)答案错误????浏览:597 |
程序员的表白 (C语言代码)浏览:667 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:542 |
Cylinder (C语言描述,蓝桥杯)浏览:1247 |
出圈】指针malloc版浏览:355 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:766 |
C语言训练-字符串正反连接 (C语言代码)浏览:632 |