题意:中文题,不翻译。。
策略:观察可知,第i张牌 如果小于等于n 那么他的序号就会变为i*2, 如果大于n 那么就会变成(i-n)*2-1 故 只需要模拟下就好了
AC by SWS
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1210
代码:
#include<stdio.h>
int main()
{
int n, cur, pre;
while(scanf("%d", &n) == 1){
int ans = 1;
cur = 2;
while(cur != 1){
if(cur<=n)
cur *=2;
else
cur = (cur-n)*2-1;
++ans;
}
printf("%d\n", ans);
}
return 0;
}