創作內容

0 GP

uva_263

作者:丸│2020-06-01 12:46:48│巴幣:0│人氣:241
import java.util.*;
public class uva_263 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            String st = sc.nextLine();
            if(st.equals("0")) break;

            int count = 0;
            System.out.println("Original number was "+st);

            String result [] = new String [1001];
            boolean flag = true;

            while(count < 1000 && flag == true) {
                String str_store = st;
                int num_max = Change(str_store,1);
                int num_min = Change(str_store,0);
                
                int dis = num_max - num_min;
                System.out.println(num_max + " - " + num_min + " = "+ dis);
                String dis_str = Integer.toString(dis);
                //用++count是為了把最新的dis_str值,放到下一位
                ++count;
                result[count] = dis_str;
                for(int i = 0; i < count; i++) {
                    if( dis_str.equals(result[i]) ) {
                        flag = false;
                        break;
                    }
                }
                st = dis_str;
            }
            if(count >= 1000) {
                System.out.println("error");
            }
            else {
                System.out.println("Chain length " + count);
            }
            //題目要求每個之間都要換行
            System.out.println();
        }
    }
    public static int Change(String st,int flag) {
        String st_store [] = st.split("");
        String st_max="";
        String st_min = "";
        
        //排序後,st_store裡面的值會由小排到大
        Arrays.sort(st_store);
        for(int i = 0; i < st_store.length; i++) {
            //把st_max加在後面,他就會倒過來
            //ex. st_store = 12  ,  st_max = 1+"" --> st_max = 2+"1" = 21
            st_max = st_store[i]+st_max;
            
            //min沒影響,直接加
            st_min += st_store[i];
        }
        int num_max = Integer.parseInt(st_max);
        int num_min = Integer.parseInt(st_min);
        //flag就判斷是max或min而已
        if(flag == 1) {
            return num_max;
        }
        else {
            return num_min;
        }
    }
}
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4802034
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★asdf4865123 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:java學習歷史-Arr...

追蹤私訊切換新版閱覽

作品資料夾

rogerjian喜歡像素風格的人
歡迎參觀LINE貼圖小舖看更多我要大聲說昨天21:48


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】