//простой пример рекурсии.
using System;
class Factorial
{
//это рэкурсивный метод
public int FactR(int n)
{
int result;
if (n == 1) return 1;
result = FactR(n - 1) * n;
return result;
}
//это итэрационный метод
public int FactI(int n)
{
int t, result;
result = 1;
for (t = 1; t <= n; t++) result *= t;
return result;
}
}
class Recursion
{
static void Main()
{
Factorial f = new Factorial();
Console.WriteLine("Факториалы, рассчитанные рекурсивным методом.");
Console.WriteLine("Факториал числа 3 равен " + f.FactR(3));
Console.WriteLine("Факториал числа 4 равен " + f.FactR(4));
Console.WriteLine("Факториал числа 5 равен " + f.FactR(5));
Console.WriteLine();
Console.WriteLine("Факториалы, рассчитаные итерационным методом.");
Console.WriteLine("Факториал числа 3 равен " + f.FactI(3));
Console.WriteLine("Факториал числа 4 равен " + f.FactI(4));
Console.WriteLine("Факториал числа 5 равен " + f.FactI(5));
}
}
//вывести символьную строку в обратном порядке, используя рекурсию
using System;
class RevStr
{
//вывести символьную строку в обритном порядке.
public void DisplayRev(string str)
{
if (str.Length > 0) DisplayRev(str.Substring(1, str.Length - 1));
else return;
Console.Write(str[0]);
}
}
class RevStrDemo
{
static void Main()
{
string s = "Это тест";
RevStr rsOb = new RevStr();
Console.WriteLine("Исходная строка: " + s);
Console.Write("Перевернутая строка: ");
rsOb.DisplayRev(s);
Console.WriteLine();
}
}