Java >> Java tutorial >  >> Java

Java-program til at finde et tals faktor ved hjælp af rekursion

I denne vejledning lærer vi, hvordan man finder fakultetet af et tal ved hjælp af en rekursiv funktion. En rekursiv funktion er en funktion, der kalder sig selv. Men før du går videre, hvis du ikke er bekendt med de grundlæggende begreber for metoder i java, så tjek artiklen om emnet metoder i java.

Input: Indtast tallet:5

Output:Den faktorielle af det indtastede tal er:120

Metode 1:Java-program til at finde et tals faktor ved hjælp af rekursion

I dette program finder vi fakultetet af et tal ved hjælp af rekursion med brugerdefinerede værdier. Her vil vi bede brugeren om at indtaste en værdi, og derefter beregner vi faktoren ved at kalde funktionen rekursivt.

Algorithme

  1. Start
  2. Deklarer en variabel for at gemme et tal.
  3. Bed brugeren om at initialisere nummeret.
  4. Tjek, om det er muligt at beregne faktoren eller ej.
  5. Hvis tallet er større end og lig med 0, skal du kalde en rekursiv funktion for at beregne fakultetet for det indtastede tal.
  6. Hvis tallet er mindre end 0, skal du udskrive meddelelsen om, at det ikke er muligt at beregne faktoren.
  7. Hvis det indtastede tal er 0 eller 1, så returner 1.
  8. Hvis det indtastede tal er andet end 0 eller 1, så beregn faktortallet ved rekursivt at kalde den samme metode.
  9. Returner resultatet.
  10. Udskriv fakultetet for det indtastede nummer.
  11. Stop

Nedenfor er koden til det samme i Java-sproget.

/*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);        
    }
}


Indtast tallet:10
Faktualiteten for det indtastede tal er:3628800

Metode 2:Java-program til at finde et tals faktor ved hjælp af rekursion

I dette program finder vi fakultetet af et tal ved hjælp af rekursion med foruddefinerede værdier. Her er det tal, hvis factorial skal beregnes, allerede angivet i programmet og vores opgave er at beregne factorial ved at kalde funktionen rekursivt.

Algorithme

  1. Start
  2. Deklarer en variabel for at gemme et tal.
  3. Initialiser nummeret.
  4. Tjek, om det er muligt at beregne faktoren eller ej.
  5. Hvis tallet er større end og lig med 0, skal du kalde en rekursiv funktion for at beregne fakultetet for det indtastede tal.
  6. Hvis tallet er mindre end 0, skal du udskrive meddelelsen om, at det ikke er muligt at beregne faktoren.
  7. Hvis det indtastede tal er 0 eller 1, så returner 1.
  8. Hvis det indtastede tal er andet end 0 eller 1, så beregn faktortallet ved rekursivt at kalde den samme metode.
  9. Returner resultatet.
  10. Udskriv fakultetet for det indtastede nummer.
  11. Stop

Nedenfor er koden til det samme i Java-sproget.

/*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);        
    }
}


Det indtastede tal er:5
Det indtastede tals fakultet er:120


Java tag