解题思路:

1 lst = [系数列表]    遍历lst通过字符串相加的形式组成目标输出字符串

2 只需要特别处理下特俗情况,通过if进行分类   

   比如 1/-1: 输出中系数1要省略      0:该项直接消失(其实就是不做处理,if就直接不写这种情况)

注意事项: 

1 if的分类  i in lst   其实就只有 if i > 0:      elif i < 0:  两种情况

2 特别处理最后输出s中要去掉首部的“+”

   原因:比如输入系数 0 2 3   因为第一项直接没了,所有首部会多一个加号(减号不用管,如果是减号那是第二项的系数是负数)

3 i in lst   i>0 需要在前面补 "+"     i<0 直接str(i)即可 

参考代码:

n = int(input())
lst = [int(i) for i in input().split()]
s = ""    # 存储结果
last = lst.pop()    # 最后一项 没有x 最后处理
for i in lst:
    if i != 0 and abs(i) != 1:
        if i > 0: s += "+"+f"{str(i)}x^{n}"
        elif i < 0: s += str(i) + f"x^{n}"
    elif abs(i) == 1:
        if i > 0: s += "+" + f"x^{n}"
        elif i < 0: s += "-" + f"x^{n}"
    n -= 1
s = s.rstrip("^1")   # 1次方没有指数标记
if last > 0: s += "+" + str(last)
elif last < 0: s += str(last)
print(s.strip("+"))    # 处理第一位系数是0的情况 s前面会以加号开头
点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

Mrfs 2年前 回复TA
自顶~