Java程序计算阶乘
时间:2020-01-09 10:35:27 来源:igfitidea点击:
在这篇文章中,我们将看到一个Java程序来查找数字的阶乘。
非负整数n的阶乘是所有小于或者等于n的正整数的乘积。
例如– 5! = 5 X 4 X 3 X 2 X 1 = 120
Java中的析因程序
Java中的析因程序既可以写为迭代解决方案,也可以写为递归解决方案。在这篇文章中,给出了两种解决方案。
使用迭代的阶乘程序
在迭代逻辑中,我们可以使用输入的数字启动for循环,并在每次迭代中将其减少1. 我们需要的是循环中所有数字的乘法。
import java.util.Scanner; public class Factorial { public static void main(String[] args) { // Input from user Scanner input = new Scanner(System.in); System.out.println("Enter a number: "); int number = input.nextInt(); int factorial = 1; for(int i = number; i >= 1; i--){ factorial = factorial * i; } System.out.println("Factorial of " + number + " is " + factorial); } }
输出:
Enter a number: 5 Factorial of 5 is 120
Java中使用递归的阶乘程序
在编写阶乘Java程序的递归逻辑中,我们需要每次调用递归传递(number – 1)作为参数的相同方法,直到达到基本情况(number = 1)。
import java.util.Scanner; public class Factorial { public static void main(String[] args) { // Input from user Scanner input = new Scanner(System.in); System.out.println("Enter a number: "); int number = input.nextInt(); int factorial = calculateFactorial(number); System.out.println("Factorial of " + number + " is " + factorial); } // Factorial using recursion private static int calculateFactorial(int num){ // base case if(num == 1){ return 1; }else{ return num * calculateFactorial(num - 1); } } }
输出:
Enter a number: 8 Factorial of 8 is 40320