冰雹數
任意給定乙個正整數n,
如果是偶數,執行: n / 2
如果是奇數,執行: n * 3 + 1
生成的新的數字再執行同樣的動作,迴圈往復。
通過觀察發現,這個數字會一會兒上公升到很高,
一會兒又降落下來。
就這樣起起落落的,但最終必會落到「1」
這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。
比如n=9
9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1
可以看到,n=9的時候,這個「小冰雹」最高衝到了52這個高度。
輸入格式:
乙個正整數n(n<1000000)
輸出格式:
乙個正整數,表示不大於n的數字,經過冰雹數變換過程中,最高衝到了多少。
例如,輸入:
10程式應該輸出:
52再例如,輸入:
100程式應該輸出:
9232
資源約定:
峰值記憶體消耗 < 256m
cpu消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0
注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。
注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。
輸入n,求的是n-1中的冰雹數變換過程中,最高衝到了多少。
#includeint main()
else
} }printf("%lld",max);
return 0;
}
可以對i>0;優化,例如i>n/2; 藍橋杯真題 冰雹數
任意給定乙個正整數n,如果是偶數,執行 n 2 如果是奇數,執行 n 3 1 生成的新的數字再執行同樣的動作,迴圈往復。通過觀察發現,這個數字會一會兒上公升到很高,一會兒又降落下來。就這樣起起落落的,但最終必會落到 1 這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。比如n 9 9,28,14,7,22...
藍橋杯 2016初賽 冰雹數
任意給定乙個正整數n,如果是偶數,執行 n 2 如果是奇數,執行 n 3 1 生成的新的數字再執行同樣的動作,迴圈往復。通過觀察發現,這個數字會一會兒上公升到很高,一會兒又降落下來。就這樣起起落落的,但最終必會落到 1 這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。比如n 9 9,28,14,7,22...
藍橋杯2016初賽 冰雹數 模擬
題目描述 任意給定乙個正整數n,如果是偶數,執行 n 2 如果是奇數,執行 n 3 1 生成的新的數字再執行同樣的動作,迴圈往復。通過觀察發現,這個數字會一會兒上公升到很高,一會兒又降落下來。就這樣起起落落的,但最終必會落到 1 這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。比如n 9 9,28,14...