这个题是有规律的。只要找1的位置就行。当1的位置在<n的时候就以原位置2倍的变化改变。
当位置在>n时就以原位置减n后2倍减的改变变化。
代码:
View Code
1 #include2 using namespace std; 3 int main() 4 { 5 int x,i,cur; 6 while(cin>>x) 7 { 8 cur=2; 9 for(i=1;cur!=1;i++) 10 if(cur<=x)11 cur=cur*2;12 else13 cur=(cur-x)*2-1;14 cout< <