回分類題庫
d201: CP Lab Exercise: 補交1
出處:

Difficulity : 1
Accepted : 24 Times | Submit :62 Times | Clicks : 1152
Accepted : 19 Users | Submit : 19 Users | Accepted rate : 100%
Time Limit :10000 ms | Memory Limit : 64000 KBytes
題目加入時間 : 2011-01-17 22:40

Content :

考慮以下的演算法:

1.         輸入 n
2.         印出 n
3.         如果 n = 1 結束
4.         如果 n 是奇數 那麼 n=3*n+1
5.         否則 n=n/2
6.         GOTO 2

例如輸入 22, 得到的數列: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 

據推測此演算法對任何整數而言會終止 (當列印出 1 的時候)。雖然此演算法很簡單,但以上的推測是否真實卻無法知道。然而對所有的n ( 0 < n < 1,000,000 )來說,以上的推測已經被驗證是正確的。 

給一個輸入 n ,透過以上的演算法我們可以得到一個數列(1作為結尾)。此數列的長度稱為n的cycle-length。上面提到的例子, 22 的 cycle length為 16. 

問題來了:對任2個整數i,j我們想要知道介於i,j(包含i,j)之間的數所產生的數列中最大的 cycle length 是多少。

Input :

輸入可能包含了好幾列測試資料,每一列有一對整數資料 i,j 。 0< i,j < 1,000,000

Output :

對每一對輸入 i , j 你應該要輸出 i, j 和介於 i, j 之間的數所產生的數列中最大的 cycle length。

Sample Input :

1 10
100 200
201 210
900 1000

Sample Output :

1 10 20
100 200 125
201 210 89
900 1000 174

Hint :


  

Author :


  Solve it!   Status Forum (0)

C++
C
JAVA
49498. CC501 (128 ms , 12518KB)
46136. alun0922 (298 ms , 364KB)
34122. gi50615 (310 ms , 354KB)
46749. sy2es956304 (608 ms , 378KB)
30705. nothinglo (256 ms , 220KB)
30688. mrqul (256 ms , 216KB)
34231. cp99703032 (264 ms , 226KB)
28873. cp99703005 (264 ms , 222KB)
30686. mrqul (270 ms , 220KB)
53126. nwgs524513cja (306 ms , 6072KB)
50639. nwgs524513cja (550 ms , 3060KB)

執行時間會受很多因素影響因此僅供參考,主機等級請看這裡