题目简介:
设计函数求一元多项式的导数。(注:$x^{n}$(n为整数)的一阶导数为$nx^{n-1}$。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
输出样例:
思路:
这题主要是题意表达的不清楚,按照它的测试用例来看,只有指数全为0的用例才能输出0 0
。
tips:
- 指数为0的部分(即常数部分)求导后为0,不需要输出。
- 判断一行是否输入结束(以回车为标志),需要用到
cin.get() == '\n'
。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #include <iostream> #include <string> #include <vector> #include <algorithm> #include <unordered_map>
using namespace std;
int main() { vector<vector<int>> res(2048, vector<int>());
int num1; int num2;
int sum = 0; int i = 0; int flag = 0;
while(true) {
cin >> num1; cin >> num2;
if (num2 != 0) {
res[i].push_back(num1 * num2); res[i].push_back(num2 - 1); i++; sum++;
flag = 1; }
if (cin.get() == '\n') break; }
if (flag == 0) {
cout << "0 0"; return 0; }
for (int i = 0; i < sum; i++) {
if(i < sum - 1) cout << res[i][0] << " " << res[i][1] << " "; else cout << res[i][0] << " " << res[i][1]; } }
|