Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

DIFERENÇA NOS RESULTADOS

Cálculo com o uso de variável do tipo LONG:

1! = 1 x 1 = 1

2! = 2 x 1 = 2

3! = 3 x 2 x 1 = 6

4! = 4 x 3 x 2 x 1 = 24

5! = 5 x 4 x 3 x 2 x 1 = 120

6! = 6 x 5 x 4 x 3 x 2 x 1 = 720

7! = 7 x 6 x 5 x 4 x 3 x 2 x 1 = 5040

8! = 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 40320

9! = 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 362880

10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 3628800

11! = 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 39916800

12! = 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 479001600   --> INT E LONG SE IGUALAM SOMENTE ATÉ AQUI

13! = 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 6227020800

14! = 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 87178291200

15! = 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 1307674368000

16! = 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 20922789888000

17! = 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 355687428096000

18! = 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 6402373705728000

19! = 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 121645100408832000

20! = 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 2432902008176640000

21! = 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -4249290049419214848

22! = 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -1250660718674968576

23! = 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 8128291617894825984

24! = 24 x 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -7835185981329244160

25! = 25 x 24 x 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 7034535277573963776

Cálculo com o uso de variável do tipo INT:

1! = 1 x 1 = 1

2! = 2 x 1 = 2

3! = 3 x 2 x 1 = 6

4! = 4 x 3 x 2 x 1 = 24

5! = 5 x 4 x 3 x 2 x 1 = 120

6! = 6 x 5 x 4 x 3 x 2 x 1 = 720

7! = 7 x 6 x 5 x 4 x 3 x 2 x 1 = 5040

8! = 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 40320

9! = 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 362880

10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 3628800

11! = 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 39916800

12! = 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 479001600  --> INT E LONG SE IGUALAM SOMENTE ATÉ AQUI

13! = 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 1932053504

14! = 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 1278945280

15! = 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 2004310016

16! = 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 2004189184

17! = 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -288522240

18! = 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -898433024

19! = 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 109641728

20! = 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -2102132736

21! = 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -1195114496

22! = 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -522715136

23! = 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 862453760

24! = 24 x 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = -775946240

25! = 25 x 24 x 23 x 22 x 21 x 20 x 19 x 18 x 17 x 16 x 15 x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 2076180480

POR QUE EM AMBOS OS CÁLCULOS OS RESULTADOS SE IGUALAM SOMENTE ATÉ 12! ?

2 respostas

Olá Claudio! Isso acontece porque o valor máximo que uma variável int pode guardar é 2147483647. Assim, a partir do fatorial de 13 esse valor supera o máximo, desta forma não é salvo o valor correto. Porém o valor máximo que uma variavel tipo Long pode guardar é 9223372036854775807. Assim, perceba que fatorial de 13 é menor que este número, então ele aparece de forma correta, pois pode ser guardado na variável.

Espero ter ajudado! Bons Estudos!

solução!

Boa tarde Claudio!

Isto acontece devido ao tamanho que cada tipo pode suportar. De acordo com a especificação da linguagem uma váriavel do tipo int suporta 32 bits, enquanto que uma váriavel do tipo long suporta 64 bits.

Portanto, com a quantidade de bits disponíveis em cada variável, podemos contar:

int: de -2147483648 ao 2147483647

long: de -9223372036854775808 ao 9223372036854775807

Em mais baixo nível, os bits excedentes referente ao valor acima de 2147483647 são truncados, ou seja, se perdem. Pois não cabem dentro da variável do tipo int. É como se você tentasse colocar 3 litros de água em uma garrafa de 1 litro, os outros 2 litros excedentes, seriam perdidos, derramados para fora da garrafa de 1 litro.

Espero ter ajudado, bons estudos!