1. Faktorial

1.3. Výsledný kód

Následující zdrojový kód je kompletací předešlých kódů programu Faktorial, který je umístěn v souboru Program.cs - viz Kód 1.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Faktorial
{
    class Program
    {
        static void Main(string[] args)
        {
            // Výpis textu 
            Console.WriteLine("Výpočet faktoriálu");
 
            // Výzva k zadání čísla pro výpočet faktoriálu
            Console.Write("Zadejte číslo: ");
 
            /* Načtení čísla - 'n' ... číslo, pro které bude vypočten 
             * faktoriál (výstupní parametr TryParse) */
            int.TryParse(Console.ReadLine(), out int n);
 
            /* Výpis textu a hodnoty faktoriálu, který je výstupem zavolané funkce 
             * s předaným parametrem 'n'; specifikace výstupního formátu 
             * čísla "N0", tj. bez čísel za desetinnou čárkou */
            Console.WriteLine("Faktoriál (cyklus while): " + FaktorialWhile(n).ToString("N0"));
            Console.WriteLine("Faktoriál (cyklus do-while): " + FaktorialDoWhile(n).ToString("N0"));
            Console.WriteLine("Faktoriál (cyklus for): " + FaktorialFor(n).ToString("N0"));
            Console.WriteLine("Faktoriál (rekurze): " + FaktorialVolaniRekurze(n).ToString("N0"));
 
            // Čekání na stisk klávesy -> ukončení programu
            Console.ReadKey();
        }
 
 
        // Metoda s celočíselným návratem (datový typ long) pro výpočet faktoriálu pomocí cyklu while
        static long FaktorialWhile(int n)
        {
            /* Deklarace: 'i' ... čítač (aktuální číslo v součinu); 
             * 'f' ... hodnota faktoriálu */
            int i;
            long f;
 
            // Inicializace
            i = 1;
            f = 1;
 
            // Opakuj, pokud je čítač menší, nebo roven číslu pro výpočet faktoriálu
            while (i <= n)
            {
                // Výpočet faktoriálu
                f = f * i;
 
                // Inkrementace čítače
                i++;
            }
 
            // Návrat vypočtené hodnoty faktoriálu
            return f;
        }
 
        // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí cyklu do-while
        static long FaktorialDoWhile(int n)
        {
            /* Deklarace: 'i' ... čítač (aktuální číslo v součinu); 
             * 'f' ... hodnota faktoriálu */
            int i;
            long f;
 
            // Inicializace
            i = 1;
            f = 1;
            do
            {
                // Výpočet faktoriálu
                f = f * i;
 
                // Inkrementace čítače
                i++;                
            }
            // Opakuj, dokud je čítač menší, nebo roven číslu pro výpočet faktoriálu
            while (i <= n);
 
            // Návrat vypočtené hodnoty faktoriálu
            return f;
        }
 
        // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí cyklu for
        static long FaktorialFor(int n)
        {
            // Deklarace: 'f' ... hodnota faktoriálu
            long f;
 
            // Inicializace
            f = 1;
 
            // Cyklus s krokem; deklarace: 'i' ... čítač (aktuální číslo v součinu)
            for (int i = 1; i <= n; i++)
            {
                // Výpočet faktoriálu
                f = f * i;
            }
 
            // Návrat vypočtené hodnoty faktoriálu
            return f;
        }
 
        // Metoda s celočíselným návratem pro výpočet faktoriálu pomocí rekurze 
        static long FaktorialRekurze(int n)
        {
            // Deklarace: 'f' ... hodnota faktoriálu
            long f;
 
            // Pokud je předaná hodnota v parametru rovna nule
            if (n == 0)
            {
                // Faktoriál je 1
                f = 1;
            }
            else
            {
                // Rekurzivní volání metody s návratem (metoda volá sama sebe)
                f = n * FaktorialRekurze(n - 1);
            }
 
            // Návrat vypočtené hodnoty faktoriálu
            return f;
        }
 
        /* Metoda s celočíselným návratem pro výpočet faktoriálu pomocí
         * volání metody využívající rekurzi */
        static long FaktorialVolaniRekurze(int n)
        {
            /* Návrat vypočtené hodnoty faktoriálu pomocí 
             * volání metody pro výpočet faktoriálu pomocí rekurze */
            return FaktorialRekurze(n);
        }
    }
}

Kód 1: Program Faktorial - deklarace hlavní statické metody Main včetně deklarací dalších metod

Výstup programu

Na následujícím výstupu programu vidíme výpis vypočtených hodnot faktoriálu pomocí různých typů cyklu a za použití rekurze - viz Výstup programu - Kód 1.   

Ukázka výpisu vypočtených hodnot faktoriálu v hlavní metodě programu Faktorial

Výstup programu - Kód 1: Ukázka výpisu vypočtených hodnot faktoriálu v hlavní metodě programu Faktorial