Recursive Örnekler
1) Klavyeden girilen sayının faktöriyeli:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dort_islemm
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Sayi giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
islem(sayi);
Console.WriteLine("{0}! = {1}", sayi,islem(sayi));
Console.ReadLine();
}
public static int islem(int sayi)
{
if (sayi <= 0) return 1;
else return sayi * (islem(sayi - 1));
}
}
}
2) 0 dan girilen sayıya kadar toplayan program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace toplama
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Sayi giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Toplam = " + topla(sayi));
Console.ReadLine();
}
public static int topla(int sayi)
{
if (sayi==0) { return 0; }
else
return sayi + topla(sayi - 1);
}
}
}
3) Girilen adım numarasındaki fibonacci değerini bulma:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace fibonacci
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Adim sayisini giriniz: ");
int adim = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(fibonacci(adim));
Console.ReadLine();
}
public static int fibonacci (int adim)
{
if(adim<=2)
{
return 1;
}
else
{
return fibonacci(adim - 1) + fibonacci(adim - 2);
}
}
}
}
4)0 dan girilen sayıya kadar yazma:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ekrana__sayi
{
class Program
{
static void Main(string[] args)
{
Console.Write("sayi giriniz: ");
int sayi = Convert.ToInt32(Console.ReadLine());
yaz(sayi);
Console.ReadLine();
}
static void yaz(int sayi)
{
if (sayi == 0) return;
else
{
Console.WriteLine(sayi);
yaz(sayi - 1);
}
}
}
}
5) Bir dizinin minimum değerdeki elemanı:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dizinin_en_büyük_elemanı
{
class Program
{
public static int findMinRec(int[] A, int n)
{
// if size = 0 means whole array
// has been traversed
if (n == 1)
return A[0];
return Math.Min(A[n - 1], findMinRec(A, n - 1));
}
static void Main(string[] args)
{
int[] A = { 1, 4, 45, 6, -50, 10, 2 };
int n = A.Length;
// Function calling
Console.WriteLine(findMinRec(A, n));
Console.ReadLine();
}
}
}