Stay determined.

PAT1010.一元多项式求导 (25)

Posted on By Yang Guang
Viewed   times

题目

=================================================
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)

输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。

样例

=================================================
输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

思路

=================================================

题目最后一句话有坑爹的情况。如果没有输出过、且要输出的满足0 0,则需要输出”0 0”,否则是不输出 0 0 的。

完整代码

=================================================

#include <iostream>

using namespace std;
int main() {
	long long int a[10005];
	long long int b[10005];
	long long int len = 0;
	int flag = 0;
	while(cin >> a[len]){
		cin >> b[len++];
	}
	for(long long int i = 0; i < len; i++){
		if(i == 0){
			if(b[i] == 0){
			}else if(b[i] == 1){
				cout << a[i] << " " << "0";
				flag = 1;
			}
			else{
				cout << a[i]*b[i] << " " << b[i] - 1;
				flag = 1;
			}
		}else{
			if(b[i] == 0){
				
			}else if(b[i] == 1){
				cout << " " << a[i] << " " << "0";
				flag = 1;
			}
			else{
				cout << " " <<  a[i]*b[i] <<  " " << b[i] - 1;
				flag = 1;
			}
		}
		if(flag == 0 && b[i] == 0){
			cout << "0 0";
		}
	} 
	return 0;
}



================================================================================================