Ola pessoal, estou lendo a apostila do caelum ( vamos ver se nao desisto dessa vez rsrs ) e tem os seguintes problemas:
4) Imprima os fatoriais de 1 a 10.
O fatorial de um número n é n * n-1 * n-2 … até n = 1. Lembre-se de utilizar os parênteses. O fatorial de 0 é
1 O fatorial de 1 é (0!) * 1 = 1 O fatorial de 2 é (1!) * 2 = 2 O fatorial de 3 é (2!) * 3 = 6 O fatorial de 4 é (3!) *
4 = 24
Faça um for que inicie uma variável n (número) como 1 e fatorial (resultado) como 1 e varia n de 1 até 10:
for ({int n=1, fatorial=1; n <= 10; n++)
- Aumente a quantidade de números que terão os fatoriais impressos, até 20, 30, 40. Em um determinado
momento, além desse cálculo demorar, vai começar a mostrar respostas completamente erradas. Porque?
Mude de int para long, e você poderá ver alguma mudança.
Beleza, o exericio 4 eu estava pensando que era dificil e talz, ate cheguei a me embananar pois tenho um pouco de dificuldade com logica e talz mas dai dei uma pesquisada aqui no forum e achei a resposta, e era facil ate d+ rsrs
Mas o problema esta no exercicio 5. Quando eu mudo para achar o fatoriais ate 20 começa aparecer negativos, se eu mudo para tipo long os negativos desaparem… Sei que isso tem haver com o tamanho suportado das variaveis, porem nao entendi muito bem.
Reparei que alguns fatoriais do tipo long sao diferentes do tipo int, porem nao sei o motivo… Li algo hoje sobre conversoes implicitas/explicitas… Tem algo haver?
Alguem poderia me explicar melhor o porque esta acontecendo isso?
Abraços

