1. 程式人生 > >演算法----冰雹序列

演算法----冰雹序列

冰雹數

任意給定一個正整數N

如果是偶數,執行: N / 2

如果是奇數,執行: N * 3 + 1

生成的新的數字再執行同樣的動作,迴圈往復。

通過觀察發現,這個數字會一會兒上升到很高, 一會兒又降落下來。 就這樣起起落落的,但最終必會落到“1” 這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。

package Hailstone ;

public class Hailstone {
    //計算冰雹猜想的長度
    //一個數,若n為奇數,則n=3n+1;若n為偶數,則n=n/2
    public static void main(String[] args) {
        System.out.println(function(
27)); } public static int function(int n) { int length = 1; while(n>1) { n= (n%2==0)?n/2:3*n+1; length++; } return length; } }