Ir para conteúdo
Fórum Script Brasil
  • 0

Fatoriais


caputofa

Pergunta

Olá,

Estava treinando aqui algumas coisas bem basicas no C, mas me deparei com um problema, ao tentar calcular numeros grandes, ele não aceita, bom, eu preciso calcular o fatorial de 100, como devo proceder?

Segue abaixo meu codigo atual:

int main () {
    int n;
    int i;
    int fatorial;
    printf("Digite o numero a ser calculado o fatorial: ");
    scanf("%d",&n);
    fatorial=n;
    for(i=1;i<n;i++)
    {
     fatorial=fatorial*i;                
    }
    printf("O fatorial de %d e: %d", n, fatorial);
    
    getch();
    return 0;
}

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Pessoal é o seguinte, para resolver isso precisa usar vetores... da uma olhada no código. Espero que ajude.

#include<stdio.h>
#define MAX 10000 
void fatorialde(int);
void mult(int);
int length = 0;
int fat[MAX];
int main(){
    int num;
    int i;
    printf("Entre com o n : ");
    scanf("%d",&num);
    fat[0]=1;
    fatorialde(num);    
    printf("Resultado : ");
    for(i=length;i>=0;i--){
         printf("%d",fat[i]);
    }
    system("pause");
}
void fatorialde(int num){
    int i;
    for(i=2;i<=num;i++){
         mult(i); 
    }
}
void mult(int num){
    long i,r=0;
    int arr[MAX];
    for(i=0;i<=length;i++){
                arr[i]=fat[i];
        }
    for(i=0;i<=length;i++){
         fat[i] = (arr[i]*num + r)%10;
         r = (arr[i]*num + r)/10;
    }
    if(r!=0){
         while(r!=0){
             fat[i]=r%10;
             r= r/10;
             i++;
         }
    }
    length = i-1;    
}

:ninja:

(Primeiro Post) VLW \o

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0

caputo, a sala de tutoriais é so pra postar tutoriais. vou mover pro lugar certo.

agora long double só pode ser alocado com 12 bytes em sistemas de 64 bits. em 32 bits, ela deve funcionar como double comum.

e não tenho certeza se depende do compilador, mas pelo menos no dev c++ (mingw) e no gcc onde já testei, (se lembro direito) int e long int são exatamente a mesma coisa (4 bytes tanto em 32 quanto em 64 bits). em 64 bits, você pode usar long long int pra alocar 8 bytes.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...