Csharp/CSharp Tutorial/Class/Method Recursion

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A simple example of recursion.

A method can call itself is called recursion.


using System; 
 
class Factorial {  
  // This is a recursive function.  
  public int factR(int n) {  
    int result;  
  
    if(n==1) return 1;  
    result = factR(n-1) * n;  
    return result;  
  }  
  
  // This is an iterative equivalent.  
  public int factI(int n) {  
    int t, result;  
  
    result = 1;  
    for(t=1; t <= n; t++) 
       result *= t;  
    return result;  
  }  
}  
  
class MainClass {  
  public static void Main() {  
    Factorial f = new Factorial();  
  
    Console.WriteLine("Factorials using recursive method.");  
    Console.WriteLine("Factorial of 3 is " + f.factR(3));  
    Console.WriteLine("Factorial of 4 is " + f.factR(4));  
    Console.WriteLine("Factorial of 5 is " + f.factR(5));  
    Console.WriteLine();  
 
    Console.WriteLine("Factorials using iterative method.");  
    Console.WriteLine("Factorial of 3 is " + f.factI(3));  
    Console.WriteLine("Factorial of 4 is " + f.factI(4));  
    Console.WriteLine("Factorial of 5 is " + f.factI(5));  
  }  
}
Factorials using recursive method.
Factorial of 3 is 6
Factorial of 4 is 24
Factorial of 5 is 120
Factorials using iterative method.
Factorial of 3 is 6
Factorial of 4 is 24
Factorial of 5 is 120

Display a string in reverse by using recursion

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 MainClass { 
  public static void Main() {   
    string s = "this is a test"; 
    RevStr rsOb = new RevStr(); 
 
    Console.WriteLine("Original string: " + s); 
 
    Console.Write("Reversed string: "); 
    rsOb.displayRev(s); 
 
    Console.WriteLine(); 
  } 
}
Original string: this is a test
Reversed string: tset a si siht

fibonacci in C#

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;
public class MainClass
{
   public static void Main(){
      Console.WriteLine(Fibonacci(10));
   }
    static int Fibonacci(int x)
    {
        if (x <= 1)
            return 1;
        return Fibonacci(x - 1) + Fibonacci(x - 2);
    }
}
89

Recursion Count

using System;
class MainClass
{
   public static void Count(int InVal)
   {
      if (InVal == 0)
         return;
      Count(InVal - 1);
      Console.WriteLine("{0} ", InVal);
   }
   public static void Main()
   {
      Count(3);
   }
}
1
2
3