Aula 2.26 - Exercício sobre como armazenar resultado de fatorial de número grande.
Agora vamos começar a complicar sua vida de programador, pois o exercício abaixo é o seguinte:
Faça um programa que permita calcular o fatorial de números relativamente grandes como o fatorial de 10000. Você não deve usar qualquer biblioteca de suporte da linguagem C.
Antes de começar, tenha em mente que somente o fatorial do número 100 possui 158 dígitos, resumindo nem uma variável do tipo long long int vai servir para armazenar esse número.
Portando o ideal seria utilizar um vetor, para ajudar vocês... vocês podem fixar o tamanho desse vetor em 20000, ou seja, não queremos resultado de fatoriais que passem esse número de dígitos.
Recomendo tentar antes de ver a resposta abaixo:
~
~~
~~~
~~~~
~~~~~
Resolução:
Bom, primeiramente criamos um vetor de tamanho máximo (linha 2). Depois inicializamos com 1 a primeira posição do vetor, a variável "tamanho" também deverá começar com 1 pois ela serve para indicar o tamanho do nosso vetor "resp" durante o processo.
A ideia básica é multiplicar cada inteiro de "1" a "numero" entrado pelo usuário pelo digito presente no vetor "resp". Mas note que os dígitos são multiplicados do dígito mais direito ao dígito mais esquerdo, ou seja, os dígitos são armazenados da direita para a esquerda no vetor (por isso na linha 19 o vetor é 'printado' ao contrário).
>> Próxima aula, clique aqui.
COMENTÁRIOS