题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1210
题目分析:追踪第一张牌的位置,要是第一张牌归位后,那么所有的牌都归位了
代码:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #include<cstdlib> #include<string> using namespace std; int main(){ long i,n,sum; while(cin>>n){ sum=1; i=2;//追踪 1 的位置; while(i!=1){ if(i>n) i=(i-n)*2-1; else i*=2; sum++;//表示排序的次数 } cout<<sum<<endl; } return 0; }