C/C++ Programmierung

Aufgabe 29

Schreiben Sie eine Funktion, die die Fakultät einer ganzen Zahl als doppelt genaue Gleitkommazahl zurückgibt. Dadurch erhöht sich der Wertebereich erheblich!
     Bitte eine Zahl größer gleich 0 eingeben: 100
     Die Fakultät von 100 ist: 9.33262e+157

Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.

Lösung für die Aufgabe

#include <fstream.h>

// Funktion zur Berechnung der Fakultät
double fak(int a)
{
  // Variable deklarieren
  double fakultaet = 1.0; // Fakultaet mit 1 initalisieren

  // Die Fakultät berechnen
  for (int i = 2; i <= a; i++)
    fakultaet *= (double)i;

  // Ergebnis zurückgeben
  return fakultaet;  
}

// Start des Hauptprogrammes
main()
{
  // Variable deklarieren
  int a;

  // Zahl einlesen
  cout << "Bitte eine Zahl größer gleich 0 eingeben: ";
  cin >> a;

  // Testen ob die eingegebene Zahl kleiner als 0 ist
  if (a < 0)
    cout << "Die Fakultät kann nicht berechnet werden, weil die eingegebene Zahl kleiner als 0 ist." << endl;
  else
  {
    // Funktion zur Berechnung der Fakultät aufrufen und Ergebnis ausgeben
    cout << "Die Fakultät von " << a << " ist: " << fak(a) << endl;
  }
}


Zurück zur Übersicht