1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:x的n次方 (n为整数)的一阶导数为n乘x的n−1次方 。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为
0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
看样子,是0多项式就不会输出了
以下两版程序皆可通过,我自己的失误是用了split(" ")转化字符串为列表,导致第一版的前三个测试点没通过。
- split()是默认以空格为界分隔字符串的(即使多个空格也照样为界)
- split(" ")是以一个空格为界
以上面的差别,可能空格的数量也算是测试内容吗?如有知晓的,希望告知一下。
第一版程序:
a = input().split()
a = [int(i) for i in a]
L = len(a)
b = []
for i in range(0,L,2):
if a[i+1] == 0:
continue
b.append(a[i] * a[i+1])
b.append(a[i+1] - 1)
if b:
b =' '.join(str(i) for i in b)
print(b)
else:
print("0 0")
第二版程序:
a = list(map(int,input().split()))
L = len(a)
b = []
for i in range(0,L,2):
if a[i+1] == 0:
continue
b.append(a[i] * a[i+1])
b.append(a[i+1] - 1)
if b:
b =' '.join(str(i) for i in b)
print(b)
else:
print("0 0")