要求:
求出1000!所包含的所有0的个数
注意:
1000!值过大,不能用int对其进行存储.
代码如下:
import java.math.BigInteger;
public class NumberOfAll { //求1000!所包含的所有0的个数
/*public static int number() {
int sum = 1;
for (int i = 1; i <= 1000; i++) {
sum *= i;
}
return sum;
}
public static void main(String[] args) {
int sum = number();
System.out.println("1000! = " + sum); //运行结果为0! 内存溢出!!!
}*/
public static BigInteger number() { //1000!
BigInteger sum = new BigInteger("1"); //BigInteger("String val")
for(int i = 1; i <= 1000; i++) {
BigInteger bi = new BigInteger(i + "");
sum = sum.multiply(bi);
}
return sum;
}
public static int numberOfZero() {
int count = 0;
String str = number().toString();
for(int i = 0; i < str.length(); i++) {
if ('0' == str.charAt(i)) { //charAt(i) => 数组中下标为i的值转型为char
count++;
}
}
return count;
}
public static void main(String[] args) {
System.out.println("the number of zero of 1000! is: " + numberOfZero());
}
}
运行结果如下:
相关git代码:https://github.com/striner/javaCode/blob/master/numberOfZero
喜欢就请关注我,你们的关注是我最大的动力~