hdu 1210

这题严格来说我不会,不过看完题第一反应就是直接看第一个数是如何变化的,然后我就打了个小函数,打完以后交上去准备继续测试找规律,结果一看居然直接就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\n", getM(N));

    }

    return 0;

}

 

你可能感兴趣的:(HDU)