1010 一元多项式求导 (25)(25 分) C++ STL

1010 一元多项式求导 (25)(25 分)

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

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

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

水题 网上所谓的坑我已经下意识考虑到,看题解以后才知道这是坑 。

做题的时候一定要咬紧自己的逻辑思维 这些简单的题 就必须要一次性通过!!

当表达式中出现一个非零求导式,则就不能输出 0 0 除非全部为零!

走了一波问号表达式。锻炼自己的读程序的能力。

#include<bits/stdc++.h>
using namespace std;
void solve() {
	pair<int, int>ST[9000];
	int cnt = 0, pd = 1;
	for (; cin >> ST[cnt].first >> ST[cnt].second; cnt++)
		(ST[cnt].second*ST[cnt].first != 0) ? pd = 0 : cnt--;
	for (int i = 0; i < cnt; i++)
		i != cnt - 1 ? printf("%d %d ", ST[i].second*ST[i].first, ST[i].second*ST[i].first != 0 ? ST[i].second - 1 : 0) :
		printf("%d %d", ST[i].second*ST[i].first, ST[i].second*ST[i].first != 0 ? ST[i].second - 1 : 0);
	if (pd) cout << 0 << " " << 0;
}
int main() {
	solve();
	return 0;
}

猜你喜欢

转载自blog.csdn.net/oshuaifeng/article/details/80443785