PTA 乙级 1010 一元多项式求导 (25分) C++
今天的题虽然简单,但是有个细节一定要注意,先放代码:
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++快
默默地一点点变强,细节决定成败