a068. 迴圈:3N+1
Tags : 迴圈
Accepted rate : 3人/3人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2020-05-18 10:28

Content

考慮下面的演算法:

當n等於1時停止,


如果n是奇數,則n=3n+1,
其餘的狀況,則n=n/2


例如,
輸入22,則會印出下列的數列: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

上面這個演算法,目前被推測認為在給予任何整數輸入值時皆可以停下來(也就是說最後都能夠輸出1)。儘管這個演算法還蠻簡單的,但卻無法確定這個推測是否是正確的;然而可以確定的是,在輸入值n介於0到1,000,000之間時,這個推測是正確的(實際上,還有比0到1,000,000更多的輸入值也是可以讓演算法停下來)。

給予一個輸入n,我們可以去算出總共會有幾個數字會被印出(包含1),而這個總數就被稱作n的循環長度(cycle-length of n)。在上面的範例中,22的循環長度為16。


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


程式可重複執行直到兩整數皆為0停止。

Input
Output
Sample Input #1
1 10
100 200
201 210
900 1000
0 0
Sample Output #1
1 10 20
100 200 125
201 210 89
900 1000 174
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (100%): 1.0s , <1K
Hint :
Tags:
迴圈
出處:
[管理者: coolsea(coolsea) ]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」