#54025: C++參考解


williamchen960620@gmail.com (William chen)


#include<iostream>
#include<cstdlib>
using namespace std;
int A[1000000] = { 0 };
 
int main() {
int m, n,max=0;
int c, d;
int b = 0;
int fun(int);
while (cin >> m >> n) {
if (m == 0 and n == 0)
break;
c = m;
d = n;
if (m > n) {
swap(m, n);
}
for (int i = m; i <= n; i++) {
b = fun(i);
if (b > max)
max = b;
}
cout << c <<" "<<d<<" "<< max << endl;
max = 0;
}
return 0;
}
int fun(int a) {
int b=0;
while (a != 1) {
if (a % 2 == 0)
{
a = a / 2;
A[b] = a;
b++;
continue;
}
if (a % 2 == 1) {
a = a * 3 + 1;
A[b] = a;
b++;
continue;
}
}
return b+1;
}

把中間部分獨立出來用函式可能會比較好看(?