1. 程式人生 > >(PAT乙級)一元多項式求導(Python)

(PAT乙級)一元多項式求導(Python)

設計函式求一元多項式的導數。(注:xn(n為整數)的一階導數為n*xn-1。)

輸入格式:以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。

輸出格式:以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和係數都是0,但是表示為“0 0”。

輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:

12 3 -10 1 6 0

這題要注意細節吧,要考慮三種情況:

1.只有一個常數

2.係數為0,指數為任意整數

3.係數和指數都不為0

n = input().split()
lis = []
if len(n) == 2 and int(n[1]) ==0:#考慮只有一個常數的情況,即可變為零多項式
    lis.extend(['0', '0'])
else:
    for x in n[0::2]:
        if int(x) == 0:#考慮任何係數為0的情況,即零多項式
            lis.extend(['0','0'])
        else:
            if int(n[n.index(x)+1]) !=0:#考慮係數和冪都不為0的情況
                xishu = str(int(x)*int(n[n.index(x)+1]))
                lis.append(xishu)
                mi = str(int(n[n.index(x)+1])-1)
                lis.append(mi)
print(' '.join(lis))