题目:1010一元多项式求导
此题关键在于:
1、处理不同的输入情况,对于不同的输入情况,用不同的结束条件。
用户输入:
1、常数,求导是0多项式,直接跳出循环
2、含常数项的多项式,常数项指数为0,输入结束
3、不含常数项的多项式,结束标记用最后的回车符\n
2、判断是否是第一对输入。如果是第一对输入,则在其前面不需要输出空格。
#include<iostream>
using namespace std;
//用户输入:
//1、可能是常数,求导是0多项式,直接跳出循环
//2、含常数项的多项式,常数项指数为0,输入结束
//3、不含常数项的多项式,结束标记用最后的回车符\n
void differential(){
int fac,exp;
bool isFirst = true; //判断是否是第一对输入
while(cin>>fac>>exp){
if(exp==0)
break; //指数为0,表示输入了常数项,按照指数递减,结束输入,跳出循环
if(isFirst){ //exp>0
cout << fac*exp << " " << exp-1;
isFirst = false;
}
else
cout << " " << fac*exp << " " << exp-1;
if(cin.get()=='\n') //cin.get()获取输入缓冲区的一个字符
break;
}
if(isFirst) //输入的多项式为常数,也是第一项
cout << "0 0";
}
int main(){
differential();
return 0;
}