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:
- import java.util.Scanner;
- public class Main{
- public static void main(String args[]){
- Scanner sc = new Scanner(System.in);
- while(sc.hasNext()){
- int arr[] = new int[99];
- int num=0,max=0,min=0,c=0;
- String s = sc.nextLine();
- //將值存在陣列
- for(int a=0;a<s.length();a++){
- if(s.charAt(a)>='0'&&s.charAt(a)<='9'){
- arr[num] = Character.getNumericValue(s.charAt(a));
- num++;
- }
- }
- //氣泡排序法讓他排列陣列
- for (int i = num; i > 0; --i)
- for (int j = 0; j < i; ++j)
- if (arr[j] > arr[j + 1]){
- c=arr[j];
- arr[j] = arr[j+1];
- arr[j+1] = c;
- }
- //利用排列出來的陣列 用MAX-MIN
- int a1=1;
- for(int a=1;a<=num;a++){
- max += a1*arr[a];
- a1=a1*10;
- }
- a1=a1/10;
- for(int a=1;a<=num;a++){
- min += a1*arr[a];
- a1=a1/10;
- }
- System.out.println(max-min);
- }
- }
- }
文章標籤
全站熱搜