题目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805313708867584ios
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。spa
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,可是表示为 0 0
。code
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; }