提交时间:2026-10-29 12:54:50

运行 ID: 43357

#include <bits/stdc++.h> using namespace std; #define int long long int n,a[50],k,ans; signed main(){ cin >> n; a[0]=1; for (int i=1; i<=45; i++) a[i] = a[i-1]*2; for (int i=0; i<=45; i++){ if (a[i]>2*n) break; k = (n+1)/a[i]-1; if (k%2==0) k--; for (int j=k; ; j+=2){ if (j*a[i]<n+1) continue; if (j*a[i]>2*n) break; ans += j; } } cout << ans; return 0; }