利用遞迴演算法找出黑洞數

來源:互聯網
上載者:User

         任意一個5位元,比如:34256,把它的各位元字打亂,重新排列,可以得到一個最大的數:65432,一個最小的數23456。求這兩個數位差,得:41976,把這個數字再次重複上述過程(如果不足5位,則前邊補0)。如此往複,數字會落入某個迴圈圈(稱為數字黑洞)。比如,剛才的數字會落入:[82962, 75933, 63954, 61974] 這個迴圈圈。歡迎提出意見與建議!

 

關於黑洞數,詳細可見百度百科 點擊開啟連結

package net.as.cn;import java.util.ArrayList;import java.util.Scanner;/** * 黑洞數演算法 * @author chenaschen * */public class HeiDongShu{public static ArrayList<Integer> list = new ArrayList<Integer>();public static void main(String[] agrs){//Scanner input = new Scanner(System.in);//String str = input.nextLine();String s = "34256";getNum(s);System.out.print("[");for(int i=0; i<list.size()-1; i++){System.out.print(list.get(i)+", ");}System.out.println(list.get(list.size()-1)+"]");}/** * 從大到小排序 * @param c * @return */public static String sortMax(char[] c){StringBuffer sb = new StringBuffer();for(int i=0; i<c.length; i++){int k = i;for(int j=i+1; j<c.length; j++){if(c[k]<c[j]){char temp = c[j];c[j] = c[k];c[k] = temp;}}sb.append(c[k]);}return sb.toString();}/** * 從小到大排序 * @param c * @return */public static String sortMin(char[] c){StringBuffer sb = new StringBuffer();for(int i=0; i<c.length; i++){int k = i;for(int j=i+1; j<c.length; j++){if(c[k]>c[j]){char temp = c[j];c[j] = c[k];c[k] = temp;}}sb.append(c[k]);}return sb.toString();}/** * 利用遞迴 * @param s */public static void getNum(String s){Integer max=Integer.parseInt((sortMax(s.toCharArray())));Integer min=Integer.parseInt(sortMin(s.toCharArray()));Integer n = max - min;if(list.contains(n)) {for(int j=0; j<list.indexOf(n); j++){list.remove(j);}return;}else{list.add(n);getNum(n.toString());}}}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.