6084問題:任意給出一個四位數,把它重新組成一個四位的最大數和一個最小數,算出兩者間的差。
阿新 • • 發佈:2021-01-23
6084問題
任意給出一個四位數,把它重新組成一個四位的最大數和一個最小數,算出兩者間的差。
例如:3721 這個數,可以重組成:7321 和 1237,差值為 7321-1237。
輸入格式
一個四位數。
輸出格式
題目中所說的差值。
輸出時每行末尾的多餘空格,不影響答案正確性
樣例輸入
3721
樣例輸出
6084
具體解答:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int number = s.nextInt();
int h,j,k,l,max,min,result;
h = number/1000;
j = (number%1000)/100;
k = (number%100)/10;
l = number%10;
int []arr = new int[4];
int []countdown = new int[4];
int a=0;
arr[0]=h;arr[1]=j;arr[2]=k;arr[3]=l;
Arrays.sort(arr);
for(int i=countdown.length-1;i>=0;i--) {
countdown[a]=arr[i];
a+= 1;
}
String strmin = toString(arr) ;
min = Integer.parseInt(strmin);
String strmax = toString(countdown);
max = Integer.parseInt(strmax);
result = max-min;
System.out.println(result);
}
//重寫toString方法
public static String toString(int [] a) {
String temp ="";
for (int i=0;i<a.length;i++) {
temp = temp+a[i];
}
return temp;
}