PAT乙級:1008. 陣列元素迴圈右移問題 (Java)
阿新 • • 發佈:2019-02-15
如果只是輸出正確的結果我認為移動的應該不是元素,而是指標。只需要記錄一下從什麼地方開始向後遍歷即可。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int N=0;//陣列大小
int M=0;//右移位置
Scanner s=new Scanner(System.in);
N=s.nextInt();
M=s.nextInt();
int index=N-(M%N);//標記從哪一個下標開始向後遍歷
//錄入、儲存資料
int [] nums=new int[N];
for (int i = 0; i < nums.length; i++) {
nums[i]=s.nextInt();
}
//輸出結果
if (nums.length==1) {//考慮臨界的情況,如果只有一個數,直接輸出即可
System.out.print(nums[index%N]);
}else{
System.out.print(nums[index %N]+" ");
int original_index=index;
index++;
while ((index%N)!=(original_index%N)) {
if ((index%N)==( (original_index-1) %N))//輸出最後一個的時候不用再加空格
{
System.out.print(nums[index%N]);
}else{
System.out.print(nums[index %N]+" ");
}
index++;
}
}
}
}