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

