BİLGİ SAYAMIYORUM beta

C++ da faktöriyel fonksiyonu nasıl yazılır?

0

Başka dillerde bu konuda örnekler yazdım, tabii ki C++ da da çok bir şey fark etmiyor. Sonuçta faktöriyel fonksiyonu her yerde aynı; 1 den istenilen sayıya kadar her sayının birbiriyle çarpılması sonucu elde edilen değer. Bu işlemi tahmin yürüterek başka yazılardan çıkartabilirsiniz ama tek başına bulunmasının da faydası var. Aşağıdaki şekilde faktöriyeli hesaplayan fonksiyonun kullanıcıdan veri alıp, ona veri gösterdiğiniz yerde değil dışarda olması daha iyi bir pratiktir. Böyle bir fonksiyonu yazmadan önce template olarak başta belirtmeniz de aynı şekilde:

#include<iostream>
using namespace std;

int faktHesapla(int n);

int main(){
     unsigned int n;
     cout << "Lutfen pozitif bir sayi girin: ";
     cin >> n;
     cout << n << " sayısının faktoriyeli: " << faktHesapla(n);
     return 0;
}

int faktHesapla(int n){
     unsigned long long fakt = 1;
     for(int i = 1; i <=n; ++i){
          fakt *= i;
     }
     return fakt;
}

i sayısının sol tarafındaki ++ o sayı için önce arttır sonra atama yap anlamına geliyor. Alternatif olarak faktHesapla fonksiyonunu kendisini şu şekilde de yazabilirsiniz, "fakt" adında yeni bir değişten üretmek yerine program geri doğru saydığı için 1 e geldiğinde 1 i sonuç olarak al diyoruz:

int faktHesapla(int n){
     if(n > 1){
          return n * faktHesapla(n - 1);
     } else{
          return 1;
     }
}

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER