Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FATORIA2 - Fatorial

Dado um inteiro N, determine quanto vale N fatorial (escreve-se N!). O fatorial de um número é o produto de todos os números entre 1 e N, inclusive. Por exemplo, 5! = 5 × 4 × 3 × 2 × 1 = 120.

Entrada

A entrada é composta por uma única linha que contém o inteiro N.

Saída

A saída deve consistir de apenas uma linha contendo o valor de N!.

Restrições

  • 0 ≤ N ≤ 12

Exemplo

Entrada

2

Saída

2

Entrada

3

Saída

6

Adicionado por:Wanderley Guimarăes
Data:2009-01-26
Tempo limite:0.301s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL
Origem:Treino para OBI de 2006 - Fábio Moreira & Daniel Fleischman

hide comments
2017-03-23 13:34:07
Pessoal que está com a saída errada e não sabe o porquê:

Lembrem-se que 0! = 1

Eu tinha me esquecido desse caso e estava indignado por não acertar os testes.
2015-12-17 17:41:45
pq esta errado
2015-03-28 16:55:41 Calvin
Fiz 2 resoluçőes:

1Ş: fat =1;
se N > 0:
fazer N .. 1
fat = fat*N;
fim fazer
fim se
mostrar fat;

2Ş fiz um vetor já com os fatoriais calculados para printar de acordo com N.

Para ambos os casos o resultado foi:
"erro em tempo de execuçăo (NZEC)"

Alguém tem alguma ideia do motivo disso? Compilando aqui todos eles funcionaram perfeitamente.
2014-04-24 22:48:07 Thiago Tibau
#include <stdio.h>

int main()
{
int num, total=1, cont;
printf("Digite um numero para calcular o fatorial: ");
scanf("%d", &num);

for (cont=num; num>1; num--)
{
total = total * (num);
}
printf("\nO Fatorial do numero digitado e = %d ", total);
return 0;
}
2014-03-24 20:43:28 Hitallo Guerra
Pedro seu algoritmo apresente falhas, uma delas esta em 1! :P
2014-03-16 17:28:23 Pedro
Caros,
Meu programa roda normal aqui no terminal, mas o SPOJ năo aceita. Alguém saberia explicar porquę? Agradeço.


#include <stdio.h>
#include <stdlib.h>

int main()
{
int cte, f, N;


scanf ("%d", &N);
f=N-1;
cte=N;

if (N>1)
{
while (f>0)
{

N=N*(cte-f);
f--;

}
}
else
{ printf("%d", N+1);
return (0);}

printf("%d", N);
return (0);
}
2013-12-30 16:59:27 Maranhão


Last edit: 2013-12-30 19:02:27
2013-10-21 19:10:02 Wanderson Ferreira
lembrando que vcs devem iniciar o fatorial em 1. Um acumulador de soma deve iniciar em zero, um acumulador de multiplicação deve iniciar em UM.
2013-07-08 02:45:25 Eduardo Maia [UECE]

Lord Tecnetos,

sua implementaçăo está certa, porém, vocę cometeu 2 erros. săo eles:

1 - vc deve inicializar sua variável "a" que, no caso, vc năo inicializou-a.

2 - depois no printf, vc retira a divisăo por 4 que vc fez.

fiz essas simples alteraçőes no seu código e deu certo aqui. espero ter ajudado.

Last edit: 2013-07-08 02:45:45
2013-06-13 19:37:26 Lord Tecnetos
Qual o erro?

#include <stdio.h>

int main ()
{
int i,n,a;
scanf ("%d", &n);
for (i=n; i>1; i--)
{
a *= i ;
}
printf ("%d", a/4);


return 0;
}
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.