java求大整数阶乘结果最后一个非零数
有大整数处理,无论数多大都不会溢出
//P41 7 求阶乘结果最后一个非零数
package pack1;
import java.math.BigInteger;
import java.util.Scanner;
public class S01 {
public static void main(String[] args)
{
BigInteger num = new BigInteger("1"); //BigInteger和BigDecimal分别表示大整数类和大浮点数类
System.out.println("请输入sc:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
if (a == 0 || a == 1) {
System.out.println(1);
return;
}
for (int i = 1; i <= a; i++) {
num = num.multiply(new BigInteger(i + ""));//num=n!
}
char[] c = num.toString().toCharArray(); //toCharArray返回字符数组
for (int b = num.toString().length() - 1; b >= 0; b--) //递减
{
if (c[b] != '0') {
System.out.println(c[b]);
String aaa1="已退出程序...";
System.out.println(aaa1);
return;
}
}
}
}
输出: