hdu 1210
2807 ワード
この问题は厳密に言えば私はできませんが、最初の反応は直接最初の数がどのように変化しているかを见て、それから私は小さな関数を打って、打った后に提出して试験を続けて规则を探すつもりで、结果は见ると意外にも直接ACになりました.うそです.の
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;
int getM(int N) {
int i = 1;
int ret = 1;
while(i != N + 1) {
ret++;
if(i <= N) {
i = i * 2;
}else {
i = 2 * (i - N - 1) + 1;
}
}
return ret;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif
int N;
while(scanf("%d", &N) == 1) {
printf("%d
", getM(N));
}
return 0;
}