C++代码: shulie.cpp
01 #include <iostream>
02 using namespace std;
03 unsigned long solve(unsigned long);
04
05 int main(){
06 unsigned long i;
07 cin>>i;
08 cout<<solve(i)<<endl;
09 system("PAUSE");
10 return 0;
11 }
12
13 unsigned long solve(unsigned long a){
14 if((a==0)||(a==1)) return a+1;
15 else{
16 unsigned long p,k=2;
17 while(k*2<=a) k*=2;
18 p=k*2+1;
19 return p-solve(a-k);
20 }
21 }