PTA 1008 陣列元素迴圈右移問題 (20分) (Java實現)
阿新 • • 發佈:2021-01-19
技術標籤:PTAJava程式設計測試java陣列
題目:
輸入格式:
每個輸入包含一個測試用例,第1行輸入N(1≤N≤100)和M(≥0);第2行輸入N個整數,之間用空格分隔。
輸出格式:
在一行中輸出迴圈右移M位以後的整數序列,之間用空格分隔,序列結尾不能有多餘空格。
輸入樣例:
6 2
1 2 3 4 5 6
輸出樣例:
5 6 1 2 3 4
實現程式碼:
注意:n>=m和n<m兩種情況,n>=m時先輸出後m個,因為當n=m時所有的數都右移了m次,相當於沒有變化,所以當n<m,先右移n的整數倍次,然後沒有變化,再右移m%n次!!!
import java.util. Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n,m,t;
n = sc.nextInt();
m = sc.nextInt();
t=n-1;
int[] a = new int[n];
if(n>=m)
{
for(int i=0;i<n;i++)
{
a[i] = sc.nextInt();
}
for(int i=(n-m);i< n;i++)
{
System.out.print(a[i]);
if(t>0)
{
System.out.print(" ");
t--;
}
}
for(int i=0;i<n-m;i++)
{
System.out.print(a[i]);
if(t>0)
{
System.out.print(" ");
t--;
}
}
}
else
{
for(int i=0;i<n;i++)
{
a[i] = sc.nextInt();
}
for(int i=n-(m%n);i<n;i++)
{
System.out.print(a[i]);
if(t>0)
{
System.out.print(" ");
t--;
}
}
for(int i=0;i<n-(m%n);i++)
{
System.out.print(a[i]);
if(t>0)
{
System.out.print(" ");
t--;
}
}
}
}
}