题目描述
设计函数求一元多项式的导数。
输入
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例1
3 4 -5 2 6 1 -2 0
输出样例1
12 3 -10 1 6 0
思路分析
之前做过这道题,但题目少了一点东西,我一开始不知道输入什么时候会结束,以为一直输入就一直有输出所以写成了这样:
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
int main() {
int factor,index;
while(cin>>factor>>index){
if(index)
cout<<factor*index<<' '<<index-1<<' ';
else break;
}
cout<<'b';
}
提交后发现不行,看来和我想的不一样,于是经过艰难的尝试,发现是以输入0为结束的,之后写的时候本地(Dev-C )跑不出来,但又感觉自己代码没问题,所以交了一遍,居然绿了,不甘心的我又在VS跑了一遍,跑不起来,原因是一个变量没赋初值,这个结果告诉我们Dev-C 是不会检查这个的,OJ是会自己赋初值的。
AC代码
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
class polynomial{
int factor,index;
public:
void datain(int factor,int index){
this->factor=factor;
this->index=index;
}
void print(){cout<<factor*index<<' '<<index-1;}
}test[1000];
int main() {
int total=0,factor,index;
while(1){
cin>>factor>>index;
if(index)
test[total ].datain(factor,index);
else break;
}
for(int i=0;i<total;i ){
if(i)
cout<<' ';
test[i].print();
}
}