問題描述
編寫一個程序,讀入一組整數(不超過20個),並把它們保存在一個整型數組中。當用戶輸入0時,表示輸入結束。然後程序將把這個數組中的值按逆序重新存放,並打印出來。例如:假設用戶輸入了一組數據:7 19 -5 6 2 0,那麼程序將會把前五個有效數據保存在一個數組中,即7 19 -5 6 2,然後把這個數組中的值按逆序重新存放,即變成了2 6 -5 19 7,然後把它們打印出來。
輸入格式:輸入只有一行,由若干個整數組成,中間用空格隔開,最末尾的整數爲0。
輸出格式:輸出也只有一行,即逆序排列後的整數,中間用空格隔開,末尾沒有空格。
輸入輸出樣例
樣例輸入
7 19 -5 6 2 0
樣例輸出
2 6 -5 19 7
算法思想:輸入的是不確定個數的一行數字,採用集合類list存儲數據,一個個從鍵盤讀取數據,直到讀到0,結束讀取數據,表示數字輸入結束,然後調用Collection中的reverse()方法將list翻轉輸出即可。
import java.util.*;
public class test{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
ArrayList<Integer>list=new ArrayList<>(); //採用集合存儲數據
for(int a=sc.nextInt();a!=0;a=sc.nextInt()){ //讀取數據
list.add(a);
}
Collections.reverse(list);//將數列翻轉
for(int i:list){ //for-each 遍歷輸出
System.out.print(i+" ");
}
}
}