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

 今天的题虽然简单,但是有个细节一定要注意,先放代码:

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 int main() {
 6     int n = 0;
 7     vector<int> num;    //vector动态处理,先不定义大小
 8     do {
 9         cin >> n;
10         num.push_back(n);
11     } while (cin.get() != '\n');
12     if (num[1] == 0)    //判断零多项式的情况
13         cout << "0 0";
14     else
15         cout << num[1] * num[0] << " " << num[1] - 1;
16     for (int i = 2; i + 1 <= (int)num.size(); i += 2) {        //以两个数为单元处理
17         if (num[i + 1] != 0) 
18             cout << " " << num[i + 1] * num[i] << " " << num[i + 1] - 1;
19     }
20     return 0;
21 }

注意一定要有对指数为零的情况的判断,不然测试点3过不了(题中说的是指数系数都是0,才是“零多项式”,但是只判断指数为零即可,不需加对系数的判断,若加上对系数num[0]的判断会有测试点2无法通过的情况,我也不知道为什么,可能题意原本想说的是指数或系数都是0吧)

还有需要注意的就是在正常循环里对指数的判断,若指数为0则不输出

还是C++快

猜你喜欢

转载自www.cnblogs.com/SCP-514/p/13200859.html