2016年1月13日 星期三

a225: 明明愛排列

內容 :
可惜,沒有下一題叫做「列排愛明明」,明明系列即將在這裡告一段落,謝謝大家這幾天來的支持!

明明喜歡把數字排成一列--用他自己的方式!
他首先先看個位數,把個位數由小到大排。接著,如果個位數字一樣的話,他會將這些數字,由大至小排。
例如,如果數字有 38 106 98 26 13 46 51 的話,那麼 51 會排最前面,因為個位數字 1 是其中最小的一個。
而 106 26 46 這三個數字,個位數同樣都是 6,所以明明會直接將他們由大至小排,也就是 106 46 26。
所以,排好之後是:51 13 106 46 26 98 38,請你幫他輸出最終結果吧!
輸入說明 : 
有多組測試資料,以 EOF 結束。
每組測試資料以一個 n(<=1000) 開始,表示明明拿到了幾個數字。接著有 n 個以空白隔開的整數。

輸出說明 : 
請輸出排序後的結果,以空白隔開。
範例輸入 : help
7
38 106 98 26 13 46 51
6
1 2 3 4 5 0
5
98 76 12 34 55
6
33 33 88 88 83 38
範例輸出:
51 13 106 46 26 98 38
0 1 2 3 4 5
12 34 55 76 98
83 33 33 88 88 38
提示 : 
標籤:

import java.util.Scanner;
public class a225 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);      
        while(true){
         int n=sc.nextInt();
         int[] m=new int[n];
         int temp;
         
         for(int i=0;i<n;i++){
         m[i]=sc.nextInt();
         }
         for(int i=0;i<n;i++){
         for(int j=0;j<n;j++){
         if(m[i]%10<m[j]%10){      
         temp=m[i];
         m[i]=m[j];
         m[j]=temp;  
         }
         }
         }
         for(int i=0;i<n;i++){
         for(int j=0;j<n;j++){
         if(m[i]%10==m[j]%10){      
        if(m[i]>m[j]){
         temp=m[i];
           m[i]=m[j];
           m[j]=temp; 
        }
         }
         }
         }
         for(int i=0;i<n;i++){
         System.out.print(m[i]+" ");
         }
         System.out.println();
        }
}

}

沒有留言:

張貼留言