许诺 • 11天前
#include <iostream>
using namespace std;
int findSurvivor(int n) {
int m = 1;
while (m * 2 <= n) {
m *= 2;
}
int L = n - m;
return 2 * L + 1;
}
int main() {
int n;
cin >> n;
int total = 0;
int current_n = n;
while (true) {
int s = findSurvivor(current_n);
int high = current_n - s;
if (high == 0) {
total += current_n * 2;
break;
} else {
total += high;
current_n = s;
}
}
cout << total << endl;
return 0;
}
评论:
请先登录,才能进行评论