java学习记录11
题目训练
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:
输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
public void sum()
{
Scanner scan = new Scanner(System.in);
int i,j;
int n,m;
int[] a;
int[] b;
a = new int[100];
b = new int[100];
n = scan.nextInt();
m = scan.nextInt();
for(i = 0; i < n; i++){
a[i] = scan.nextInt();
b[i] = a[i];
}
for(i = 0; i < n; i++){
a[i+m] = b[i];
}
for(i = 0; i < m; i++){
a[i] = b[n-m+i];
}
for (i = 0; i < n; i++)
System.out.println(a[i]);
}