C/C++ Faktöriyel Hesaplama

C ve C++ programlama dili ile faktöriyel hesaplama için kullanılan tekrarlamalı (iterative) ve özyinelemeli (recursive) yöntemlerle ilgili bilgiler yer alıyor.

Faktöriyel hesaplama

Faktöriyel hesaplama işlemi belirli bir sayıdan 1 sayısına kadar olan sayıların çarpımıdır.

Örneğin; 5 sayısı için 5*4*3*2*1 = 120

C ve C++ programlama dilinde faktöriyel hesaplamak için tekrarlamalı ve özyinelemeli yöntemler kullanılır.

Tekrarlamalı yöntem

Tekrarlamalı yöntem veya iteratif yöntem programlama dili içerisinde yer alan döngüler kullanılarak yapılan işlemdir.

#include <iostream>

using namespace std;

int main(){

  int faktoriyel = 1, sayi = 0;

  cout << "Sayi giriniz: ";
  cin >> sayi;

  for (int i = 2; i <= sayi; i++){
    faktoriyel *= i;
  }

  cout << faktoriyel;

  return 0;
}

C ile;

#include <stdio.h>

int main(){

  int i = 0, faktoriyel = 1, sayi = 0;

  fprintf(stdout, "Sayi giriniz: ");
  fscanf(stdin, "%d", &sayi);

  for(i = 2; i <= sayi; i++){
    faktoriyel *= i;
  }

  fprintf(stdout, "%d", faktoriyel);

  return 0;
}

Tekrarlamalı yöntemin while döngüsü ile yapılmış hali aşağıdaki gibidir.

#include <iostream>

using namespace std;

int main(){

  int faktoriyel = 1, sayi = 0;

  cout << "Sayi giriniz: ";
  cin >> sayi;

  while (sayi >= 2){
    faktoriyel *= sayi;
    sayi--;
  }

  cout << faktoriyel;

  return 0;
}

Özyinelemeli yöntem

Özyinelemeli yöntem veya rekürsif yöntem yazılan fonksiyonunun sürekli kendini çağırmasıdır.

#include <iostream>

using namespace std;

int faktoriyel(int sayi){

  if(sayi <= 1) return 1;

  return sayi * faktoriyel(sayi - 1);
}

int main(){

  int sayi = 0;

  cout << "Sayi giriniz: ";
  cin >> sayi;

  cout << faktoriyel(sayi);

  return 0;
}

C ile;

#include <stdio.h>

int faktoriyel(int sayi){

  if(sayi <= 1) return 1;

  return sayi * faktoriyel(sayi - 1);
}

int main(){

  int sayi = 0;

  fprintf(stdout, "Sayi giriniz: ");
  fscanf(stdin, "%d", &sayi);

  fprintf(stdout, "%d", faktoriyel(sayi));

  return 0;
}

NOT: Faktöriyel hesaplama işleminde büyük sayılar işletim sistemi mimarisine göre farklı sonuçlar verebilir.

Programlama örneklerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!