题目:![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a92db9044f6b0f121e961a8787d647fd.png)
输入格式:
每个输入包含一个测试用例,第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--;
}
}
}
}
}