Sou novo no java e estou usando a apostila FJ11 da caelum para aprender a linguagem. Nela contém alguns exercicios, gostaria de saber se minha ideia esta correta e se resolve mesmo o exercicio.
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++) {
for(intfat=1,fatorial=1;fat<=10;fat++){intresultado=(fatorial-1)*fat;System.out.println("O Fatorial de "+fatorial+" = "+resultado);fatorial++;}
mas o q eu fiz foi asneira?
a ideia é certa?
nao quero saber se tem outras maneiras mais simples de fazer o que eu fiz, gostaria de saber se a minha ideia esta certa, se supre o q a questao esta pedindo?
tnaires
renatojcastro:
mas o q eu fiz foi asneira?
a ideia é certa?
nao quero saber se tem outras maneiras mais simples de fazer o que eu fiz, gostaria de saber se a minha ideia esta certa, se supre o q a questao esta pedindo?
Você rodou o programa? O resultado exibido foi o correto? Se não foi, não tem jeito: a idéia não está certa.
marcelo.bellissimo
renatojcastro:
mas o q eu fiz foi asneira?
a ideia é certa?
nao quero saber se tem outras maneiras mais simples de fazer o que eu fiz, gostaria de saber se a minha ideia esta certa, se supre o q a questao esta pedindo?
Sua idéia está certa, salvo alguns detalhes que estavam errados na sua lógica…
O mais “bonito” seria fazer recursão, mas primeiro tenta fazer funcionar e tenta entender as correções que eu fiz no seu código… se não entender algo, dá um toque…
R
renatojcastro
você pode dizer o que esse trech faz?
resultado=fatorial<=1?1:fatorial*resultado;
aluisiodsv
Está quaaase certa.
O problema é q a cada laço feito na repetição a variável de resultado é iniciada novamente.
O q vc deve fazer é iniciá-la fora do laço, ou seja:
intresultado=0;for(…){
resultado=resultado+…
}
aluisiodsv
Esse ponto de interrogação é parecido com o if …
<uma pergunta> ? <uma resposta> : <senão, outra resposta>
R
renatojcastro
po galera valeu mesmo
ViniGodoy
Faça uma planilha no excel com os resultados certos. Ou calcule você mesmo na calculadora do Windows. Enfim, procure elaborar uma forma de testar se seu programa está correto, antes de executa-lo.
E então, rode seu programa. Pode ser também um bom exercício sobre como desenvolver o aplicativo.
Ele funciona como um “if” , com um resultado para o caso da expressão retornar “true” e outro no caso de retornar “false”…
Nessa linha, serve pra verificar se o valor sendo calculado é menor ou igual a 1 ( 0 ou 1, que nessa caso tem seu fatorial igual á 1)… pois esses são os únicos casos em que não é nem preciso calcular o fatorial…