Java >> Tutoriel Java >  >> Java

Programme Java pour trouver le factoriel d'un nombre à l'aide de la récursivité

Dans ce tutoriel, nous allons apprendre à trouver la factorielle d'un nombre à l'aide d'une fonction récursive. Une fonction récursive est une fonction qui s'appelle elle-même. Mais avant d'aller de l'avant, si vous n'êtes pas familier avec les concepts de base des méthodes en Java, consultez l'article sur les méthodes de sujet en Java.

Entrée : Entrez le nombre :5

Sortie :la factorielle du nombre saisi est :120

Méthode 1 :Programme Java pour trouver la factorielle d'un nombre à l'aide de la récursivité

Dans ce programme, nous trouverons la factorielle d'un nombre en utilisant la récursivité avec des valeurs définies par l'utilisateur. Ici, nous demanderons à l'utilisateur d'entrer une valeur puis nous calculerons la factorielle en appelant la fonction de manière récursive.

Algorithme

  1. Démarrer
  2. Déclarez une variable pour stocker un nombre.
  3. Demandez à l'utilisateur d'initialiser le numéro.
  4. Vérifiez s'il est possible de calculer la factorielle ou non.
  5. Si le nombre est supérieur et égal à 0, appelez une fonction récursive pour calculer la factorielle du nombre saisi.
  6. Si le nombre est inférieur à 0, imprimez le message indiquant qu'il n'est pas possible de calculer la factorielle.
  7. Si le nombre saisi est 0 ou 1, alors renvoie 1.
  8. Si le nombre saisi est différent de 0 ou 1, alors calculez la factorielle en appelant récursivement la même méthode.
  9. Renvoyer le résultat.
  10. Imprimer le factoriel du nombre saisi.
  11. Arrêter

Vous trouverez ci-dessous le code correspondant en langage Java.

/*Java Program to find factorial of a number using Recursive Function*/
import java.util.Scanner;
public class Main
{
    //Driver Code
    public static void main(String[] args) 
    {
        //Take input from the user
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number :");
        int num = sc.nextInt();   //Input the number
        if(num>=0) 
        {
           //Call a recursive function to find the factorial
           int factorial=findFactorial(num);
           System.out.println("The factorial of the entered the number is :"+factorial);
        }        
        else
        {
            System.out.println("Factorial not possible.");
            System.out.println("Please enter valid input.");
        } 
    }
    //Recursive Function to Find the Factorial of a Number
    public static int findFactorial(int num)
    {
        if(num==0)
        return 1;
        else if(num==1)
        return 1;
        else
        return num*findFactorial(num-1);        
    }
}


Entrez le nombre :10
Le factoriel du nombre saisi est :3628800

Méthode 2 :Programme Java pour trouver la factorielle d'un nombre à l'aide de la récursivité

Dans ce programme, nous trouverons la factorielle d'un nombre en utilisant la récursivité avec des valeurs prédéfinies. Ici, le nombre dont la factorielle doit être calculée est déjà donné dans le programme et notre tâche est de calculer la factorielle en appelant la fonction de manière récursive.

Algorithme

  1. Démarrer
  2. Déclarez une variable pour stocker un nombre.
  3. Initialiser le numéro.
  4. Vérifiez s'il est possible de calculer la factorielle ou non.
  5. Si le nombre est supérieur et égal à 0, appelez une fonction récursive pour calculer la factorielle du nombre saisi.
  6. Si le nombre est inférieur à 0, imprimez le message indiquant qu'il n'est pas possible de calculer la factorielle.
  7. Si le nombre saisi est 0 ou 1, alors renvoie 1.
  8. Si le nombre saisi est différent de 0 ou 1, alors calculez la factorielle en appelant récursivement la même méthode.
  9. Renvoyer le résultat.
  10. Imprimer le factoriel du nombre saisi.
  11. Arrêter

Vous trouverez ci-dessous le code correspondant en langage Java.

/*Java Program to find factorial of a number using Recursive Function*/
public class Main
{
    //Driver Code
    public static void main(String[] args) 
    {
        int num=5;
        System.out.println("The entered number is :"+num);
        if(num>=0) 
        {
           //Call a recursive function to find the factorial
           int factorial=findFactorial(num);
           System.out.println("The factorial of the entered number is :"+factorial);
        }
        else
        {
            System.out.println("Factorial not possible.");
            System.out.println("Please enter valid input.");
        } 
    }
    //Recursive Function to Find the Factorial of a Number
    public static int findFactorial(int num)
    {
        if(num==0)
        return 1;
        else if(num==1)
        return 1;
        else
        return num*findFactorial(num-1);        
    }
}


Le nombre saisi est :5
Le factoriel du nombre saisi est :120


Balise Java