Java 程序:使用递归求一个数的阶乘
在本教程中,我们将学习如何使用递归函数找到一个数的阶乘。递归函数是调用自身的函数。但是在继续之前,如果你不熟悉 java 中方法的基本概念,那么一定要查看主题为 java 中方法的文章。
输入:输入数字:5
输出:输入数字的阶乘为:120
程序 1:用递归求一个数的阶乘
在这个程序中,我们将使用带有用户定义值的递归找到一个数的阶乘。这里,我们将要求用户输入一个值,然后通过递归调用函数来计算阶乘。
算法
- 开始
- 声明一个变量来存储一个数字。
- 要求用户初始化数字。
- 检查是否可以计算阶乘。
- 如果数字大于等于 0,则调用递归函数来计算输入数字的阶乘。
- 如果数字小于 0,则打印无法计算阶乘的消息。
- 如果输入的数字是 0 或 1,则返回 1。
- 如果输入的数字不是 0 或 1,则通过递归调用相同的方法计算阶乘。
- 返回结果。
- 打印输入数字的阶乘。
- 停止
下面是相同的 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);
}
}
输入数字:10 输入数字的阶乘为:3628800
程序 2:用递归求一个数的阶乘
在这个程序中,我们将使用带有预定义值的递归找到一个数的阶乘。这里,要计算阶乘的数字已经在程序中给出,我们的任务是通过递归调用函数来计算阶乘。
算法
- 开始
- 声明一个变量来存储一个数字。
- 初始化数字。
- 检查是否可以计算阶乘。
- 如果数字大于等于 0,则调用递归函数来计算输入数字的阶乘。
- 如果数字小于 0,则打印无法计算阶乘的消息。
- 如果输入的数字是 0 或 1,则返回 1。
- 如果输入的数字不是 0 或 1,则通过递归调用相同的方法计算阶乘。
- 返回结果。
- 打印输入数字的阶乘。
- 停止
下面是相同的 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);
}
}
输入的数字是:5 输入的数字的阶乘是:120