public static void Main()
int sum = RecursionArr(arr, 0, 0, (int x,int y) => x+y);
Console.WriteLine("СУММА = " + sum);
int dif = RecursionArr(arr, 0, 0, (int x,int y) => x-y);
Console.WriteLine("РАЗНОСТЬ = " + dif);
int min = RecursionArr(arr, 0, int.MaxValue, (int x,int y) => Math.Min(x,y));
Console.WriteLine("МИНИМАЛЬНЫЙ ЭЛЕМЕНТ = " + min);
int max = RecursionArr(arr, 0, -int.MaxValue, (int x,int y) => Math.Max(x,y));
Console.WriteLine("МАКСИМАЛЬНЫЙ ЭЛЕМЕНТ = " + max);
int minBut10 = RecursionArr(arr, 0, int.MaxValue, (int x,int y) => {
Console.WriteLine("ИНИМАЛЬНЫЙ ЭЛЕМЕНТ ВСЕХ, КРОМЕ 10 = " + minBut10);
public static T RecursionArr<T> (T []arr, int it, T defaultValue, Func<T, T, T> func) {
return func(RecursionArr(arr, it+1, defaultValue, func), arr[it]);