PAT B1010 一元多项式求导(满分25)

思路点拨:
用一个结构体数组来存储每个数以及它的指数,然后根据条件来进行判断输出。
需要注意题目条件“注意“零多项式”的指数和系数都是 0,但是表示为 0 0”,这一点需要考虑到,不然,不能够,满分通过。

代码如下:

#include<iostream>
#include<vector>
#include<cstdio>

using namespace std;

struct num {
    
    
	int number;
	int count;
};

int main()
{
    
    
	vector<num> numbers;
	num tmp;
	int m = 0;
	int a, b;
	while (scanf("%d %d", &a, &b) != EOF)
	{
    
    
		tmp.number = a;
		tmp.count = b;
		m++;
		numbers.push_back(tmp);
	}
	int n = 0;
	for (int i = 0; i < m; i++)
	{
    
    
		if (numbers[i].number != 0 && numbers[i].count != 0)
		{
    
     // 指数不为0且系数不为0,求导后该项才不为零
			if (numbers[i].count > 0 && numbers[i + 1].count > 0 && i < m - 1)
				cout << numbers[i].number*numbers[i].count << " " << numbers[i].count - 1 << " ";
			else
				cout << numbers[i].number*numbers[i].count << " " << numbers[i].count - 1;
			n++;
		}
	}
	if (n == 0) cout << "0" << " " << "0";
	return 0;
}

码后总结:
需要考虑到这一点,只有指数不为0且系数不为0,求导后该项才不为零。另一点就是,关于EOF使用时,在VS2015中,需要三次Ctrl+z+enter,才能结束输入。
总的来说,这道题很基础。

猜你喜欢

转载自blog.csdn.net/qq_27538633/article/details/105926704