1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:x
n
(n为整数)的一阶导数为nx
n−1
。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
代码为:
a = input().split()
b = []
while 1: # 对a进行筛选,末尾为0就删除一对
if a[-1] == '0' and len(a) > 2:
a = a[:-2]
else:
break
if len(a) == 2 and a[-1] == '0': # len(a) = 2且a[1]为0的情况单独考虑
b = [0, 0]
else:
for i in range(len(a)):
if i % 2 == 0:
n = int(a[i])*int(a[i+1])
b.append(n)
elif i % 2 != 0:
n = int(a[i]) - 1
b.append(n)
b = list(map(str, b)) # 将列表b中所有元素都转为str类型
res = ' '.join(b)
print(res)