一元多项式求导

2023-07-30 11:21:20 浏览数 (2)

题目描述

设计函数求一元多项式的导数。

输入

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过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();
	}
}

0 人点赞