PTA 乙级 1005 继续(3n+1)猜想 (25分) C++
C++
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5 bool cmp(int a, int b) { 6 return a > b; 7 } 8 int main() { 9 int K, flag = 0; 10 cin >> K; 11 int a[10000] = { 0 }; 12 vector<int> v; 13 for (int i = 0; i < K; i++) { 14 int tmp; 15 cin >> tmp; 16 v.push_back(tmp); 17 while (tmp != 1) { 18 if (tmp % 2 == 1) 19 tmp = 3 * tmp + 1; 20 tmp /= 2; 21 if (a[tmp] == 0) 22 a[tmp] = 1; 23 } 24 } 25 sort(v.begin(), v.end(), cmp); //重新排序 26 for (int i = 0; i < v.size(); i++) { 27 if (a[v[i]] == 0) { 28 if (flag == 1) cout << " "; 29 cout << v[i]; 30 flag = 1; 31 } 32 } 33 return 0; 34 }
来源:https://blog.csdn.net/zhanshen112/article/details/84310167
本题不太会(本人太菜了),感谢这位博主提供好方法,得以学习
对C++的库了解甚少,专门查了查官方文档:http://www.cplusplus.com/reference/algorithm/
里面sort函数的解释:
默默地一点点变强,细节决定成败