设计函数求一元多项式的导数。(注:x^n(n为整数)的一阶导数为n*x^(n-1)。)
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
思路:
因为不知道有几组,采用字符流的形式,录入一行再依次操作。
详情见代码。
#include<iostream>
#include<sstream>
#include <vector>
using namespace std;
int main(){
vector<int> v;
string buff;
getline(cin,buff);
istringstream n(buff);
int a,b;
while(n>>a>>b){
if(a==0)
b=1;//把b=1为了最后指数操作的时候另其为0罢了
if(a!=0&&b==0)//指数为0,则不输出。
continue;
v.push_back(a*b);//系数
v.push_back(b-1);//指数
}
if(v.empty()){//如果为0多项式,输出0 0
v.push_back(0);
v.push_back(0);
}
for(int i=0;i<v.size();i++){
cout<<v[i];
if(i!=v.size()-1)
cout<<" ";
}
}