Métodos estáticos

Amigos do GUJ, estou iniciando em Java, porem não consigo entrende o que a de errado com um problema q deparei Hoje.

Essa classe possui o método main que deve receber um número inteiro e chamar
o método fatorial(int) passando o número recebido.
O método fatorial(int) deve calcular e retornar o resultado.
O método principal deve imprimir o valor retornado.

[code]
public class Main {
public static void main(String[] args) {

    int numero, i,fatorial,fat,fator;

    numero = Integer.parseInt(JOptionPane.showInputDialog("Numero"));
    fat = fatorial(fator);
    System.out.println(fat);
}


    public static int fatorial(int numero, int i, int fator)
    {
        for(i=numero;i>1;i--)
        {
            fator *= i;
        }
        return fator;
    }

}[/code]

Você envia um parâmetro para um método que recebe três [size=9] edit, tinha colocado 2, é o sono[/size]!

fat = fatorial(fator); 
///....
public static int fatorial(int numero, int i, int fator) 

Pois então, não vi diferença e o codigo ainda não roda.

Rezende,

O caso é o seguinte… quando você chama a função fatorial:


fat = fatorial(fator);

você está passando um parâmetro para a função. Só que a sua função pede que você envie 3 parâmetros:


public static int fatorial(int numero, int i, int fator)

Você precisa passar também valores para o numero, e este outro int i.

Aegalera consegui achar o resultado, mas ainda fiquei um pouco confuso, esse return, ele atribui um valor para o método, porem, não entendi direito o porque deve colocar um parametro tipo fat = fatorial (NUMERO)

[code]
int numero, fat,fator,fatorial;

    numero = Integer.parseInt(JOptionPane.showInputDialog("Numero"));
    fat = fatorial(numero);
    System.out.println(fat);

}

public static int fatorial(int numero) {
    int i, fatorial = 1;
    for (i = numero; i > 1; i--) {
        fatorial *= i;
    }
    return fatorial;
}

}[/code]

Valeu ae galera !!