求第n项阶乘(n!)
import java.util.Scanner;
public class theFactorial {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter the number: ");
int num = input.nextInt();
int temp = 1; int sum = 0;
for(int i = 1; i <= num; i++) {
temp *= i;
}
System.out.println("The " + num + "! is : " + temp);
}
}
求前n项阶乘的和(1! + 2!+...+n!)
import java.util.Scanner;
public class sumFactorial {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter the number: ");
int num = input.nextInt();
int temp = 1; int sum = 0;
for(int i = 1; i <= num; i++) {
temp *= i;
sum += temp;
}
System.out.print("The result is : " );
for(int i = 1; i <= num; i++) {
System.out.print(i + "! ");
}
System.out.println("result is " + sum) ;
}
}
求大整数阶乘N!(不会溢出)
import java.math.*;
import java.util.Scanner;
public class LargeFactorial {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter the number: ");
int num = input.nextShort();
System.out.println(num + "! is : " + factorial(num));
}
public static BigInteger factorial(long n) {
BigInteger result = BigInteger.ONE;
for(int i = 1; i <= n; i++) {
result = result.multiply(new BigInteger( i + ""));
//将数字转换为字符串,防止溢出
}
return result;
}
}