fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int main() {
  6. int n;
  7. while (cin >> n) {
  8. vector<int> arr;
  9. // 初始化数组:0到n
  10. for (int i = 0; i <= n; i++) {
  11. arr.push_back(i);
  12. }
  13.  
  14. // 不断丢弃奇数位,直到只剩一个元素
  15. while (arr.size() > 1) {
  16. vector<int> temp;
  17. // 保留偶数位(索引为1,3,5...,在程序中索引从0开始)
  18. for (int i = 1; i < arr.size(); i += 2) {
  19. temp.push_back(arr[i]);
  20. }
  21. arr = temp;
  22. }
  23.  
  24. cout << arr[0] << endl;
  25. }
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5320KB
stdin
500
stdout
255