【 OJ 】 HDOJ1032 18年11月15日16:58 [ 30 ]

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QingCoffe/article/details/84107249

ummmm啥也不想说.....

Consider the following algorithm: 


    1.      input n

    2.      print n

    3.      if n = 1 then STOP

    4.           if n is odd then n <- 3n + 1

    5.           else n <- n / 2

    6.      GOTO 2

真的看不出来.... n <- 3n + 1的意思是 n=3n+1.....

# include<iostream>
using namespace std;
int f(int n) {
    int count = 0;
    for (;;) {
        count++;
        if (n== 1)
            break;
        if (n & 1) {//奇数
            n = 3 * n + 1;
        }
        else
            n /= 2;
    }
    return count;
}
pair<int,int> max_(int a, int b) {
    return a > b ? make_pair(b,a) : make_pair(a,b);
}
int max(int a, int b) {
    return a > b ? a : b;
}
int main(void) {
    int i, j;
    pair<int, int> l;
    int ll;
    int index;
    while (cin >> i >> j) {
        l = max_(i, j);
        for (index = l.first, ll = 0; index <= l.second; index++) {
            ll = max(f(index), ll);
        }
        cout << i << " " << j << " " << ll<<endl;
    }
    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/QingCoffe/article/details/84107249