pessoal precso fazer esse exercicio 5. Tabelar n! para n variando de 0 a 10.
mas não estou conseguindo fazer a parte de fatorial como eu posso fazer isso??
vou mandar meu codigo,alguem para alguem poder me falar o que esta faltando!
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 0 ; i <= 10 ; i--){
System.out.println(i + "|" + i * i );
}
Acredito que 10! caiba em um long… mais números grandes o melhor é usar BigInteger…
lembre-se que… 0! = 1
lembrando que… 10! = 109! = 10987654321*0! .
se o que vc ker é uma tabela… crie 1 matriz de 11 espaços (pois de 0 ate 10 temos 11 espaços)… tabela[11] … em cada ponto da matriz coloque o valor do calculo do fatorial…
lembre-se que… tabela[0] = 1
e lembre-se que tabela[1] = 1tabela[0]; o mesmo ocorre para o seguinte… tabela[2] = 2tabela[1];
com isso na cabeça… monte um for, e popule a matriz tabela… é bem simples… boa sorte
vendo seu código…seu fatorial SEMRPE vai dar “0”, pois você não tratou essa excessão, já que o fatorial de ZERO é 1;
vc pode receber o valor e tratá-lo
int valorAux;//recebe o valor de cálculo do fatorial
int valor==1;//recebe o valor do fatorial //inicializa esta variável com valor 1
if(valorAux==0){
System.out,println("0!:1");
} else if(valorAux>0&&valor<=10){
for(int i=valorAux;i>=1;i--){
valor=valor*i;
}
System.out.println(""+valorAux+"!:"+valor);
}
Ai blz, seguinte achei duas maneiras de realizar o fatorial, a primeira é direta de 0 a 10 e a segunda é o calculo do fatorial de um número informado pelo usuário como segue:
código um:
public class Fatorial1{
public static void main(String[] args){
int fatorial = 1;
for(int n=0; n <= 10; n++){
fatorial *= n;
if(fatorial == 0){
System.out.printf("\n%d | %d\n", n, fatorial+1);
fatorial++;
}else {
System.out.printf("\n%d | %d\n", n, fatorial);
}
}
}
}
Código 2:
import java.util.Scanner;
public class Fatorial2{
public static void main(String[] args){
//cria uma referência do tipo Scanner;
Scanner entrada = new Scanner(System.in);
System.out.println("Digite um inteiro para fatorar");
//recebe uma entrada do tipo int
long n = entrada.nextInt();
//variável que armazena a última multiplicação
long anterior = 0;
if(n > 1){
for(long fatorial = 0; fatorial <= n; fatorial++){
anterior *= fatorial;
if(anterior == 0){
anterior++;
}
}
}
if(n == 0 || n == 1){
anterior = 1;
}
System.out.printf("\n%d | %d\n", n, anterior);
}
}