Fatorial num vetor

Pessoal to tentado fazer com que os valores digitados num vetor pelo usário na hora de impressos ele me de o fatorial de cada um deles eu fiz assim mas ta errado algume pode me ajudar???

[code] public static void main(String[] args) {
int vet0[] = new int[5];

    int i = 0 ;
   
    for(i=0; i<5; i++){     
     String aux = JOptionPane.showInputDialog(null,"Digite N° para posição " +i+ " do 1°Vetor:");     
     vet0[i] = Integer.parseInt(aux);     
     	   
    }
   for(i=0; i<5; i++){
	   vet0[i]= vet0[i]*i;
	   System.out.print(vet0[i]);
   } 
  
	    
	   		   
}  

}[/code]

Você viu aqui que todos os valores vão dar zero, não? Explique por que é que está dando zero. (Dica: por que é que você não calcula o fatorial em um método separado?)

        for(i=0; i<5; i++){  
            vet0[i]= vet0[i]*i;  
            System.out.print(vet0[i]);  
        } 

[quote=thingol]Você viu aqui que todos os valores vão dar zero, não? Explique por que é que está dando zero. (Dica: por que é que você não calcula o fatorial em um método separado?)

for(i=0; i<5; i++){ vet0[i]= vet0[i]*i; System.out.print(vet0[i]); } [/quote]

a resposta que ele me da é 02468 se eu digitar pra todos os valores do vetor o 2 … mas msmo assim não me resolve nada como assim deixar em método separado??

Crie um método chamado "fatorial" que receba um número e retorne o fatorial desse número.

A seguir, chame-o para preencher o vetor. Por exemplo,

        for(i=0; i<5; i++){  
            System.out.println(fatorial (vet0[i]));  
        }  

[quote=thingol]Crie um método chamado "fatorial" que receba um número e retorne o fatorial desse número.

A seguir, chame-o para preencher o vetor. Por exemplo,

for(i=0; i<5; i++){ System.out.println(fatorial (vet0[i])); } [/quote]

sim eu entendo como vc diz para eu fazer mas é que esse jeito não vi na faculdade ainda me diga senão for pedir muito tem como vc fazer pra mim e colar o código ??? para eu poder análisar…

Escolha nesta página.
Algumas implementações de fatorial no GUJ

[code]import javax.swing.*;
class Test{
public static void main (String [] args){
int [] vetor = new int [5];

	for (int i = 0; i < 5; i++){
		String aux = JOptionPane.showInputDialog (null, "Digite número: ");
		vetor[i] = Integer.parseInt (aux);
	}

	for ( int j : vetor)
		System.out.println ("Fatorial de " + j + ":" + fatorial (j));
}

static int fatorial (int n){
	if (n == 1 || n==0) return 1;

	return ((fatorial (n-1)) * n);
}

}[/code]

Tive uma idéia pro seu problema.
Você pode ir calculando o fatorial da lista ordenada, assim o fatorial do elemento i+1 pode ser calculado a partir do fatorial do elemento i.
A complexidade dessa solução é igual a O(AO) + X, onde AO = Algoritmo de Ordenação usado e X é o maior elemento da lista.
A complexidade de calcular o fatorial de todos elementos normalmente é a soma dos elementos.

To sem cabeça agora (leia-se “com fome”) pra calcular qual é o melhor ou se depende do caso.

[quote=rod.attack]

static int fatorial (int n){
	if (n == 1 || n==0) return 1;

	return ((fatorial (n-1)) * n);
}

}[/code][/quote]

cara testei teu código ele fumego bacaninha mas não entendi uma coisa esse aqui é oq faz acontecer o fatorial???

[quote=VictorFarion][quote=rod.attack]

static int fatorial (int n){
	if (n == 1 || n==0) return 1;

	return ((fatorial (n-1)) * n);
}

}[/code][/quote]

cara testei teu código ele fumego bacaninha mas não entendi uma coisa esse aqui é oq faz acontecer o fatorial???
[/quote]

Exato, essa é uma função <a href = "http://www.google.com.br/search?hl=pt-BR&q=recurs%C3%A3o&btnG=Pesquisa+Google&meta=&aq=f&oq=" >recursiva </a> que calcula o fatorial do número n, passado por parâmetro. Qualquer problema que você resolve com recursão pode também ser resolvido por meio de estruturas de repetição (for, while, etc) e vice-versa. Porém, dependendo do problema é interessante você escolher uma solução ou outra.</p>

[quote=rod.attack][quote=VictorFarion][quote=rod.attack]

static int fatorial (int n){
	if (n == 1 || n==0) return 1;

	return ((fatorial (n-1)) * n);
}

}[/code][/quote]

cara testei teu código ele fumego bacaninha mas não entendi uma coisa esse aqui é oq faz acontecer o fatorial???
[/quote]

Exato, essa é uma função <a href = "http://www.google.com.br/search?hl=pt-BR&q=recurs%C3%A3o&btnG=Pesquisa+Google&meta=&aq=f&oq=" >recursiva </a> que calcula o fatorial do número n, passado por parâmetro. Qualquer problema que você resolve com recursão pode também ser resolvido por meio de estruturas de repetição (for, while, etc) e vice-versa. Porém, dependendo do problema é interessante você escolher uma solução ou outra.[/quote]</p> <p>certo e vamos supor que se eu fizesse uma matriz e só quizesse fazer um fatorial pra uma linha eu poderia usar o msmo recurso???</p>

Claro…a função recursiva nada tem a ver com a estrutura onde vc está armazenando os dados…cuidado pra não confundir as coisas, se tá em dúvida sobre o que é recursão, dá uma olhada aqui.