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; }