设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
===========================================================================================
思路:
这题首先的坑就是读题,“零多项式”是指输入的函数为常数函数的情况。
另外注意处理函数最后的常数。(如果有的话)
#include <iostream> #include <iomanip> #include <cmath> #include <algorithm> #include <cstring> #include <sstream> using namespace std; int main() { int fun[1000][2]; int a,b,i=0,j=0,sum=0; while(cin>>a>>b) { fun[i][0] = a; fun[i][1] = b; i++; } for(j=0;j<i;j++) { if(fun[j][1] != 0) { fun[j][0]*=fun[j][1]; fun[j][1] -= 1; sum++; } } if(fun[0][1] == 0) { cout<<"0 0"<<endl; return 0; } else { for(j=0;j<sum;j++) { cout<<fun[j][0]<<" "<<fun[j][1]; if(j<sum-1) cout<<" "; } return 0; } }