演算法案例2-求冰雹數 java程式碼實現
介紹:
冰雹數
任意給定一 個正整數N,
如果是偶數,執行: N /2
如果是奇數,執行: N*3+1
生成的新的數字再執行同樣的動作,迴圈往復。
通過觀察發現, 這個數字會一會兒上升到很高,
一會兒又降落下來。
就這樣起起落落的,但最終必會落到"1"
這有點像小冰雹粒子在冰雹雲中翻滾增長的樣子。
例子
比如=9
9,28,14, 7,22,11,34,17, 52,26,13, 40,20,10,5,16,8,4,2,1
可以看到,N=9的時候,這個小冰雹“最高衝到了52這個高度。
分析:
這個演算法實現很簡單,只需要用if判斷一下奇偶數然後按照特定的算式進行計算即可
然後可以建立一個動態陣列進行排序 sort 最大的就是我們要得到的數
輸入格式:
一個正整數N (N<1000000)
輸出格式:
一個正整數,表示不大於w的數字,經過冰雹數變換過程中,最高衝到了多少。
例如,輸入: 10
程式應該輸出: 52
程式碼實現
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class solution {
public static void main(String[] args) {
//鍵盤錄入一個資料
Scanner sc = new Scanner(System.in);
int s = sc.nextInt();
//呼叫方法
bbs(s);
}
//建立一個動態陣列
public static ArrayList<Integer> li = new ArrayList<>();
public static void bbs(int n) {
int a = 0;
//遞迴終止條件
if(n == 1) {
//正序。由小到大
Collections.sort(li);
//逆序,由大到小
Collections.reverse(li);
//輸出這個集合
System.out.println(li);
//因為是逆序排序,所以最小的的索引值就是我們想要的
System.out.println(li.get(0));
return;
}
//執行要求
if(n%2 == 0) {
a = n/2;
}else {
a = n*3+1;
}
li.add(a);
//遞迴迴圈條件
bbs(a);
}
}
相關文章
- Java實現網路爬蟲 案例程式碼Java爬蟲
- Java實現 藍橋杯 演算法提高 八數碼(BFS)Java演算法
- 負載均衡的幾種演算法Java實現程式碼負載演算法Java
- 搶紅包案例分析以及程式碼實現
- Java實現Http請求JavaHTTP
- 求取眾數及重數的演算法實現(Java)演算法Java
- java 橋接模式實現程式碼Java橋接模式
- 微信小程式實現商城案例(賦原始碼)微信小程式原始碼
- 搶紅包案例分析以及程式碼實現(三)
- 搶紅包案例分析以及程式碼實現(二)
- 搶紅包案例分析以及程式碼實現(四)
- 感知機演算法(PLA)程式碼實現演算法
- 圖解Dijkstra演算法+程式碼實現圖解演算法
- Python求10個數的平均數實戰案例講解!Python
- Java 實現的SnowFlake生成UUID (Java程式碼實戰-007)JavaUI
- Canvas實現放大鏡效果完整案例分析(附程式碼)Canvas
- java實現有理數分數相關計算(淺度拷貝)案例Java
- 隨機快速排序Java程式碼實現隨機排序Java
- 雜湊表的程式碼實現(Java)Java
- 手寫演算法-python程式碼實現Kmeans演算法Python
- 十大經典排序演算法動畫解析和 Java 程式碼實現排序演算法動畫Java
- 相親原始碼開發,從程式碼級別減少資料請求次數的實現原始碼
- 網站返回頂部jquery js實現程式碼方式案例網站jQueryJS
- 演算法練習:求字串的最長重複子串(Java實現)演算法字串Java
- [譯] 用 Java 程式碼實現區塊鏈Java區塊鏈
- 音樂格式轉換:java程式碼實現Java
- 14聚類演算法-程式碼案例六-譜聚類(SC)演算法案例聚類演算法
- 排序演算法Java實現排序演算法Java
- KMP演算法 Java實現KMP演算法Java
- 排序演算法 Java實現排序演算法Java
- 23行程式碼實現一個帶併發數限制的fetch請求函式行程函式
- mybatis實現變數定義,實現sql業務程式碼MyBatis變數SQL
- 一遍記住Java常用的八種排序演算法與程式碼實現Java排序演算法
- 十大經典排序演算法最強總結(含JAVA程式碼實現)排序演算法Java
- Java實現網路爬蟲 案例程式碼:從網上獲取《三國演義》全文Java爬蟲
- Java實現網路爬蟲 案例程式碼3:使用webmagic框架獲取天氣預報Java爬蟲Web框架
- 200行Java程式碼實現依賴注入框架Java依賴注入框架
- Java程式碼實現七夕魔方照片牆Java