题目描述
设计函数求一元多项式的导数。(注:$x^n$ ($n$为整数)的一阶导数为 $nx^{n−1}$ 。)
输入格式
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
样例
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
算法1
(暴力枚举) $O(n)$
按 x
z
,每次读取,z!=0
时,模拟求导并输出。
时间复杂度
数据规模为 N,时间复杂度,仅有一个循环,故 $O(n)$。
C++ 代码
#include <iostream>
using namespace std;
int main() {
int x, z;
bool zero = true;
while(cin >> x >> z) { // TIPS:循环不会结束
if(z != 0) {
// 前置输出 " " 避免行尾多余空格
// 非零多项式,除最高项外均前置输出空格
if(!zero) cout << " ";
cout << x * z << " " << z - 1;
zero = false;
}
}
if(zero) cout << "0 0";
return 0;
}