Developing

C# – Fatorial

Introdução

Este post mostra como calcular fatorial em C#. No exemplo é calculado o fatorial de 0 a 20. Mas o mesmo pode ser facilmente modificado para que se calcule apenas o fatorial desejado, ou exiba os resultados de fatoriais diferentes. Esse exemplo foi feito para Console Application, mas pode ser utilizando em Windows Forms dubstituindo as linhas onde exite a palavra Console.

Fatorial

O fatorial de um número consiste em um importante mecanismo nos estudos envolvendo Análise Combinatória, pois a multiplicação de números naturais consecutivos é muito utilizada nos processos de contagem. Fatorial de um número consiste em multiplicar o número por todos os seus antecessores até o número 1.

Observe a definição a seguir:
Representamos o fatorial de um número por n! e o desenvolvimento por n! = n * (n – 1) * (n – 2) * (n – 3) * … * 4 * 3 * 2 * 1 para n ≥ 2. Caso n = 1, temos 1! = 1 e n = 0, temos 0! = 1.

Exemplo

3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120
6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40 320
9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362 880
10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3 628 800

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EX3
{
    class Program
    {
        // Método calculador do fatorial.
        static long Fatorial(int number)
        {
            // Se o parâmetro (valor desejado para calculo do fatorial)
            // for 0 ou 1, o retorno sempre será 1 (devido a regra do fatorial).
            // Se for maior que 1, é feito o número vezes o fatorial desse mesmo número menos 1
            // até o parâmetro ser 1.
            // Isso é chamado de função recursiva / método recursivo / recursive function.
            if (number <= 1)
                return 1;
            else return number * Fatorial(number - 1);
        }

        // Método principal.
        static void Main(string[] args)
        {
            // Muda a cor das letras do console para amarelo.
            Console.ForegroundColor = ConsoleColor.Yellow;
            // Exibe os resultados dos fatoriais de 0 à 20.
            for (int i = 0; i <= 20; i++)
            {
                // Mostra o fatorial e seu resultado.
                Console.WriteLine("{0} ! = {1}", i, Fatorial(i));
            }
            // Aguarda para sair.
            Console.ReadLine();
        }
    }
}

Referências

Análise Combinatória – Fatorial

Wikipédia – Fatorial

Veja Também

C# – StringBuilder vs Concatenation

C# – Real Time Chart

C# – ZedGraph Control

C# – ReadOnly CheckBox

VS – Debug Release Mode

C# – Change ProgressBar Color

C# – Screenshot

VS Express – Target Platform

C# – Anchor

C# – SplitContainer

_____

Não se esqueça de deixar seu comentário, critica, elogio, dúvida e etc. Ele é muito importante para a melhoria do blog.
Do not forget to leave your comments, criticism, praise, questions, etc.. It is very important for improving the blog.

Advertisements

Comments on: "C# – Fatorial" (2)

  1. Danilo Cavalcante said:

    Precisei para a faculdade! Funcionou perfeito!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: