解题思路:
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++代码)浏览:1225 |
字符串问题 (C语言代码)浏览:1634 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1260 |
【矩阵】 (C++代码)浏览:999 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:513 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:839 |
拆分位数 (C语言代码)浏览:558 |
小O的乘积 (C语言代码)浏览:1062 |
简单的a+b (C语言代码)浏览:473 |