-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTask68
More file actions
29 lines (24 loc) · 1009 Bytes
/
Task68
File metadata and controls
29 lines (24 loc) · 1009 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Напишите программу вычисления функции Аккермана с помощью рекурсии.
// Даны два неотрицательных числа m и n.
// m = 2, n = 3 -> A(m,n) = 9
// m = 3, n = 2 -> A(m,n) = 29
Console.Write("Введите первое целое положительное число: ");
int firstNumber = int.Parse(Console.ReadLine());
Console.Write("Введите второе целое положительное число: ");
int secondNumber = int.Parse(Console.ReadLine());
Console.WriteLine($"m = {firstNumber}, n = {secondNumber}, => A(m,n) = {Akkerman(firstNumber, secondNumber)}");
int Akkerman(int firstNumber, int secondNumber)
{
if (firstNumber == 0)
{
return secondNumber + 1;
}
else if (secondNumber == 0 && firstNumber > 0)
{
return Akkerman(firstNumber - 1, 1);
}
else
{
return (Akkerman(firstNumber - 1, Akkerman(firstNumber, secondNumber - 1)));
}
}