2016蓝桥杯省赛---java---C---8(冰雹数)
生活随笔
收集整理的這篇文章主要介紹了
2016蓝桥杯省赛---java---C---8(冰雹数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
任意給定一個正整數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請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。 注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。 注意:主類的名字必須是:Main,否則按無效代碼處理。代碼實現
package TEST;import java.util.Scanner;/*** @創建人 wdl* @創建時間 2021/4/9* @描述*/ public class TEST {public static int max;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n=scanner.nextInt();for (int i = 1; i < n; i++) {f(i);}System.out.println(max);scanner.close();}public static void f(int n){if(n==1){return;}max=n>max?n:max;f(n%2==0?n/2:n*3+1);} }總結
以上是生活随笔為你收集整理的2016蓝桥杯省赛---java---C---8(冰雹数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机械制图对电脑配置有什么要求?
- 下一篇: 2017蓝桥杯省赛---java---C