題目連結: https://zerojudge.tw/ShowProblem?problemid=c039
# 解題思路
從 a 到 b 之間的所有長度都算出來,只記錄最大值就好
(可以運用函式,讓程式碼變得更單純)
# 程式碼
#include <iostream> | |
using namespace std; | |
int cl(int n) | |
{ | |
int i=1; | |
while (n!=1){ | |
if (n%2==1) n=3*n+1; | |
else n=n/2; | |
i++; | |
} | |
return i; | |
} | |
int main(){ | |
int a,b,c,d; | |
while(cin >> a >> b) | |
{ | |
int ans=0; | |
for(int i=min(a,b);i<=max(a,b);i++) | |
ans=max(ans,cl(i)); | |
cout << a<< " " << b << " " << ans <<endl; | |
} | |
return 0; | |
} |