原题链接:蓝桥杯算法提高VIP-多项式输出
解题思路:
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分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复