• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djgavva

[Resolvido] Calcular factorial

7 mensagens neste tópico

Boas amanhã tenho um teste de Java, no qual vai sair o seguinte exercicio, que eu tenho tentado a resolve,r e até agora não consegui será que vocês me podem ajudar.

O problema é o seguinte é para nós elaboramos um programa que calcule o factorial de um numero x fornecido pelo utilizador...

Se alguém me ajudasse ia ficar muito grato.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é a dúvida em si?

Em pedir o número?

Ler? Calcular o factorial?

Sabes como se calcula o factorial?

Isso basta um ciclo for e fica resolvido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois o meu problema é esse, não sei como fazer o ciclo for...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vós estáis desesperado. É pois é bom que aprenda que não se prepara um teste num dia antes mas sim com algum treino feito com periocidade!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

/**

*

* @author mast3r

*/

public class Math {

    /**

    * Esta e' a resolucao de forma iterativa para a questao do calculo de um

    * factorial. Basta entao iterar uma multiplicacao sobre o resultado

    * anterior.

    * @param num

    * @return

    */

    public static int calcularFactorialIterativo(int num){

        int resultado = 1;

       

        for(int i=1 ; i<=num ; i++){

            resultado*=i;

        }

       

        return resultado;

    }

    /**

    * Esta e' a resolucao recursiva, aqui a funccao chama se a ela propria.

    * Pode-se tentar visualizar uma iteracao do metodo anterior com uma chamada

    * recursiva neste caso.

    * @param num

    * @return

    */

    public static int calcularFactorialRecursivo(int num){

        if(num <=1){

            return 1;

        }else{

            return num*Math.calcularFactorialRecursivo(num-1);

        }

    }

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois o meu problema é esse, não sei como fazer o ciclo for...

Desculpa, mas a mim parece-me ser preguiça em pensar.

Exemplo, factorial de 5 = 5x4x3x2x1 = 120

Ora, se fizeres um ciclo for (i = 5; i<= 1 ; i--)

Onde i=5 é igualar o i ao número que queres saber o factorial, i<= 1 que é sempre o último cálculo do factorial.

Se começas em 5, a forma de chegares a 1 é ir decrementando daí o i--

Então o for vai fazer:

factorial = factorial * i;

Onde factorial é o valor do factorial de 5.

Correndo o ciclo à mão:

1 = 1 * 5; // Dá 5

5 = 5 * 4; // Dá 20

20 = 20 * 3; // Dá 60

60 = 60 * 2; // Dá 120

120 = 120 * 1; // Dá 120

Pronto tens o resultado final.

PS: De frisar o caso especial em que 0 (ZERO) factorial é 1.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora