#include<iostream> #include<algorithm> using namespace std; #include<vector> int flag[100000]={0}; int num[1001] = { 0 }; int ans[1001] = { 0 }; bool cmp(int x, int y) { return x > y; } int main() { int nums; cin >> nums; int obj; for (int i = 0;i < nums;i++) { cin >> obj; num[i] = obj; if (!flag[obj]) { while (obj != 1) { if (obj % 2)obj = 3 * obj + 1; obj /=2; flag[obj] = 1; } } } int cnt = 0; for (int i = 0;i < nums;i++) { obj = num[i]; if (!flag[obj]) ans[cnt++] = obj; } sort(ans, ans + cnt, cmp); for (int k = 0;k < cnt - 1;k++) cout << ans[k] << " "; cout << ans[cnt - 1]; }
原文:https://www.cnblogs.com/illfuckingkyzb/p/10468429.html