import java.util.Scanner;
/**
* 计算n!的末尾有多少个零
* @author howard2005
*/
public class test { public static void main(String[] args) {
int n, jc; Scanner sc = new Scanner(System.in);
System.out.print("n=");
n = sc.nextInt(); jc = 1;
for (int i = 1; i <= n; i++) {
jc = jc * i;
}
System.out.println(jc); String strJc = String.valueOf(jc);
StringBuffer buffer = new StringBuffer(); for (int i = strJc.length() - 1; i >= 0; i--) {
char c = strJc.charAt(i);
if (c == '0') {
buffer.append(c);
} else {
break;
}
} int count = buffer.length();
System.out.println(n + "!的末尾有" + count + "个零。");
}
}
用523一直除以5(取整数),直到商为0,然后把这些整数商加起来就是了。523/5=104
104/5=20
20/5=4
4/5=0所以最后有 104+20+4+0=128 个0.
对一个正整数n,求出n!中末尾0的个数。
输入
输入有若干行。每一行上有一个整数T,是测试数据组数,接着有T行,每一行包含一个确定的正整数n(n≤1000000000)。
输出
对输入行中的每一个数据n,输出一行,其内容是n!中末尾0的个数。
输入样例 输出样例
3
3 0
100 24
1024 253
如果按照您的方法,100!就是用100/5,就等于0了哦
import java.math.BigInteger;public class TestBigInteger {
public static void main(String[] args) {
BigInteger bigInt_One = new BigInteger("22");
BigInteger bigInt_Two = new BigInteger("9");
System.out.println("加:"+bigInt_One.add(bigInt_Two));
System.out.println("减:"+bigInt_One.subtract(bigInt_Two));
System.out.println("乘:"+bigInt_One.multiply(bigInt_Two));
System.out.println("除:"+bigInt_One.divide(bigInt_Two));
}
}