1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
理清楚思路就行:
1.循环储存数据之后,对数据两两处理。(系数和指数)
2.因为“零次多项式”也就是常数项特殊,单独分出来,条件是第一对处理,且指数(第二个数据)为0,对于“非零次多项式”,输出系数(前项)*指数(后项),指数减一,其中对于指数为0的项continue跳过。
C++代码:
#include <bits/stdc++.h> using namespace std; int main(void) { vector<int> s; int n; char c; while (1) { cin >> n; s.push_back(n); if ((c = getchar()) == '\n') break; } for (size_t m = 0; m != s.size(); m += 2) { if (m == 0 && s[m + 1] == 0)//为零次项时 cout << 0 << " " << 0; else { if (s[m + 1] == 0)//系数为常数0 continue; else if (m == 0) cout << s[m] * s[m + 1] << " " << s[m + 1] - 1;//为第一个项求导 else if(m != 0) cout << " " << s[m] * s[m + 1] << " " << s[m + 1] - 1;//其他项求导 } } return 0; }
第一次测试点二错误,测试点二用
5 0
测试,输出
0 0
来源:https://www.cnblogs.com/Mayfly-nymph/p/9638413.html