【 OJ 】 HDOJ1032 18年11月15日16:58 [ 30 ]
阿新 • • 發佈:2018-12-02
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; }