Завдання: Виконати циклічний зсув матриці на k1 позицій вправо та на k2 догори
k1- № варіанту, k2- № варіанту + 2.
Приклад коду_1.public class Pr5 {
//зсув матриці вправо на n позицій
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5};
int n = 2;
int[] b = new int[a.length];
for (int i = a.length-1; i >= 0; i--) {
if(i+n >= a.length){
b[i+n-a.length] = a[i];
}
else{
b[i+n] = a[i];
}
}
for (int i : b) {
System.out.print(i+" ");
}
}
}
Приклад коду_2.
package pr6;
import java.util.Arrays;
public class Pr6 {
public static int[] shiftArr(int[] inArr,int shift)
{
if ((inArr == null)|| (inArr.length == 0 ) || (shift<=0)) { throw new java.lang.IllegalArgumentException(); }
while(shift>0)
{
int lastVar = inArr[inArr.length-1];
for(int counter = 0;counter<inArr.length;counter++)
{
int curVal = inArr[counter];
inArr[counter] = lastVar;
lastVar = curVal;
}
shift--;
}
return inArr;
}
public static void main(String[] args)
{
int[] testArr = {1,2,3,4,5};
testArr = shiftArr(testArr,2);
for(int i=0; i< testArr.length; i++ )
{
System.out.print(testArr[i]+" ");
}
}
}
Приклад коду_3.
public class Sdvig {
public static void main(String... args) {
int[] mass = new int[] { 1, 2, 3, 4, 5 };
for (int i : mass) {
System.out.print(i + " ");
}
System.out.println();
new Sdvig().reverse(mass, 2);
for (int i : mass) {
System.out.print(i + " ");
}
}
public int[] reverse(int[] input, int sdvig) {
if (sdvig > input.length || sdvig < 1) {
System.out.println("Неправильне число зсуву");
return input;
}
int[] output = new int[input.length];
int j = 0;
for (int i : input) {
output[j++] = i;
}
int tmp = sdvig;
for (int i = 0; i < output.length; i++) {
if (sdvig > 0) {
input[i] = output[output.length - sdvig];
sdvig--;
} else {
input[i] = output[i - tmp];
}
}
return input;
}
}
k1- № варіанту, k2- № варіанту + 2.
//зсув матриці вправо на n позицій
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4,5};
int n = 2;
int[] b = new int[a.length];
for (int i = a.length-1; i >= 0; i--) {
if(i+n >= a.length){
b[i+n-a.length] = a[i];
}
else{
b[i+n] = a[i];
}
}
for (int i : b) {
System.out.print(i+" ");
}
}
}
Приклад коду_2.
package pr6;
import java.util.Arrays;
public class Pr6 {
public static int[] shiftArr(int[] inArr,int shift)
{
if ((inArr == null)|| (inArr.length == 0 ) || (shift<=0)) { throw new java.lang.IllegalArgumentException(); }
while(shift>0)
{
int lastVar = inArr[inArr.length-1];
for(int counter = 0;counter<inArr.length;counter++)
{
int curVal = inArr[counter];
inArr[counter] = lastVar;
lastVar = curVal;
}
shift--;
}
return inArr;
}
public static void main(String[] args)
{
int[] testArr = {1,2,3,4,5};
testArr = shiftArr(testArr,2);
for(int i=0; i< testArr.length; i++ )
{
System.out.print(testArr[i]+" ");
}
}
}
Приклад коду_3.
public class Sdvig {
public static void main(String... args) {
int[] mass = new int[] { 1, 2, 3, 4, 5 };
for (int i : mass) {
System.out.print(i + " ");
}
System.out.println();
new Sdvig().reverse(mass, 2);
for (int i : mass) {
System.out.print(i + " ");
}
}
public int[] reverse(int[] input, int sdvig) {
if (sdvig > input.length || sdvig < 1) {
System.out.println("Неправильне число зсуву");
return input;
}
int[] output = new int[input.length];
int j = 0;
for (int i : input) {
output[j++] = i;
}
int tmp = sdvig;
for (int i = 0; i < output.length; i++) {
if (sdvig > 0) {
input[i] = output[output.length - sdvig];
sdvig--;
} else {
input[i] = output[i - tmp];
}
}
return input;
}
}