close

題目取自於ITSA協作平台
題目:兩數差值


問題描述 :

輸入由0~9的數字所組成的N個數字字串(一次輸入),將此數字串拆開作排序,排列出最大值數列MAX與最小值數列MIN,輸出MAX - MIN兩數相減的值。

 

輸入說明 :

1≤N≤7,輸入值為13957按ENTER

輸出說明 :

輸出的數值為83952

範例 :

Sample Input:

Sample Output:

1,3,9,7,5

83952

 

Code:

  1. import java.util.Scanner;  
  2. public class Main{  
  3.     public static void main(String args[]){  
  4.         Scanner sc = new Scanner(System.in);      
  5.         while(sc.hasNext()){  
  6.         int arr[] = new int[99];  
  7.         int num=0,max=0,min=0,c=0;  
  8.         String s = sc.nextLine();  
  9.         //將值存在陣列
  10.         for(int a=0;a<s.length();a++){  
  11.             if(s.charAt(a)>='0'&&s.charAt(a)<='9'){  
  12.               arr[num] = Character.getNumericValue(s.charAt(a));  
  13.               num++;  
  14.             }  
  15.         }  
  16.         //氣泡排序法讓他排列陣列
  17.         for (int i = num; i > 0; --i)  
  18.             for (int j = 0; j < i; ++j)  
  19.                 if (arr[j] > arr[j + 1]){  
  20.                     c=arr[j];  
  21.                     arr[j] = arr[j+1];  
  22.                     arr[j+1] = c;  
  23.                 }  
  24.        //利用排列出來的陣列 用MAX-MIN
  25.         int a1=1;  
  26.         for(int a=1;a<=num;a++){  
  27.             max += a1*arr[a];  
  28.             a1=a1*10;  
  29.         }  
  30.         a1=a1/10;  
  31.         for(int a=1;a<=num;a++){  
  32.             min += a1*arr[a];  
  33.             a1=a1/10;  
  34.         }  
  35.         System.out.println(max-min);  
  36.         }  
  37.     }  
  38. }  
arrow
arrow
    文章標籤
    ITSA JAVA 兩數差值
    全站熱搜
    創作者介紹
    創作者 ニャー提督 的頭像
    ニャー提督

    ニャー提督的提督室

    ニャー提督 發表在 痞客邦 留言(0) 人氣()