Все методы написал самостоятельно мой ученик Денис Н. (8 — 9 класс). Эти методы легче позволяют решать задачи повышенной сложности.
Я горжусь такими учениками, как Денис! Удачи и успехов в работе!
// Разное
public static int rnd(int from, int to) {
return (int)(from + Math.random() * (to - from + 1));
}
public static int numberOfDigits(int n) {
return (int)Math.floor(Math.log10(n)) + 1;
}
public static int[] getNumbers(int n) {
String[] number = String.valueOf(n).split("");
int[] arr = new int[number.length];
for(int i = 0; i < number.length; i++) arr[i] = Integer.parseInt(number[i]);
return arr;
}
// Методы массивов
public static int getIndex(int[] arr, int n) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == n) return i;
}
return -1;
}
public static String join(int[] arr) {
String output = "";
for(int i = 0; i < arr.length; i++) {
output += arr[i] + " ";
}
return output.substring(0, output.length() - 1);
}
public static void reverse(int[] arr) {
for(int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
public static int find(int[] arr, int n) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == n) return i;
}
return -1;
}
public static double average(int[] arr) {
int sum = 0;
for(int i = 0; i < arr.length; i++) sum += arr[i];
return (float)sum / arr.length;
}
public static int sum(int[] arr) {
int sum = 0;
for(int i = 0; i < arr.length; i++) sum += arr[i];
return sum;
}
public static int count(int[] arr, int n) {
int count = 0;
for(int i = 0; i < arr.length; i++) if(arr[i] == n) count++;
return count;
}
public static int getMax(int[] arr) {
int max = -999999;
for(int i = 0; i < arr.length; i++) {
if(arr[i] > max) max = arr[i];
}
return max;
}
public static int getMin(int[] arr) {
int min = 999999;
for(int i = 0; i < arr.length; i++) {
if(arr[i] < min) min = arr[i];
}
return min;
}
// Более сложные методы массивов
public static int[] getDivisors(int n) {
int count = 0;
for(int i = 1; i < n + 1; i++) {
if(n % i == 0) count++;
}
int[] outputArr = new int[count];
int lastIndex = 0;
for(int i = 1; i < n + 1; i++) {
if(n % i == 0) {
outputArr[lastIndex] = i;
lastIndex++;
}
}
return outputArr;
}
public static int[] common(int[] arr1, int[] arr2) {
int count = 0;
for(int i = 0; i < arr1.length; i++) {
if(getIndex(arr2, arr1[i]) != -1) count++;
}
int[] outputArr = new int[count];
int lastIndex = 0;
for(int i = 0; i < arr1.length; i++) {
if(getIndex(arr2, arr1[i]) != -1) {
outputArr[lastIndex] = arr1[i];
lastIndex++;
}
}
return outputArr;
}