求阶乘的四种方法
package work;
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
int n;
System.out.println("请输入所要求的阶乘n:");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
getFactorial1(n);
getFactorial2(n);
getFactorial3(n);
System.out.println("n! = "+getFactorial4(n));
}
//使用for语句循环输出阶乘
public static void getFactorial1(int n){
//for循环语句
int s = 1;
for(int i = 1; i<=n; i++)
{
s *= i;
}
System.out.println("n! = "+s);
}
//使用while语句循环输出阶乘
public static void getFactorial2(int n){
//while循环语句
int s = 1;
int i = 1;
while(i<=n){
s *= i;
i++;
}
System.out.println("n! = "+s);
}
//使用do-while语句循环输入阶乘
public static void getFactorial3(int n){
//do-while循环语句
int s = 1;
int i = 1;
do{
s*=i;
i++;
}while(i<=n);
System.out.println("n! = "+s);
}
//使用递归方法循环求阶乘
public static int getFactorial4(int n) {
if (n == 1)
return n;
else
return n * getFactorial4(n - 1);
}
}