Некоторые методы на Java

Все методы написал самостоятельно мой ученик Денис Н. (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;
}

Добавить комментарий