Mrfs


私信TA

用户名:uq_17098259374

访问量:621

签 名:

等  级
排  名 5996
经  验 1470
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

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 人评分

  评论区

自顶~
2022-08-25 09:35:34
  • «
  • 1
  • »