1010 一元多項式求導 (25分)
題目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805313708867584

輸入格式:
以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過 1000 的整數),數字間以空格分隔,
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的系數和指數,數字間以空格分隔,但結尾不能有多余空格,注意“零多項式”的指數和系數都是 0,但是表示為 0 0,
輸入樣例
3 4 -5 2 6 1 -2 0
輸出樣例
12 3 -10 1 6 0
我的理解

代碼段
#include<iostream>
using namespace std;
int main() {
int array[2001];
int i = 0;
// 輸入
for ( ; i < 2001; i++) {
cin >> array[i];
if (getchar() == '\n') {
break;
}
}
int length = i + 1;
// 求導運算
for (int i = 1; i < length; i += 2) {
array[i-1] *= array[i];
array[i]--;
}
if (length == 2) {
// 如果導數多項式是零多項式
if (array[0] == 0 && array[1] == -1) {
cout << "0 0" << endl;
return 0;
} else {
cout << array[0] << " " << array[1] << endl;
}
} else {
// 如果末尾的那一項系數為0,并且指數為-1,表示該項為常數0,舍去
if (array[length - 2] == 0 && array[length - 1] == -1) {
length -= 2;
}
for (int i = 0; i < length; i += 2) {
if (i == length - 2) {
cout << array[i] << " " << array[i + 1] << endl;
} else {
cout << array[i] << " " << array[i + 1] << " ";
}
}
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/109103.html
標籤:其他
上一篇:ASCII碼
