это мой Java-код:выяснить большой факториал п подсчитать количество нулей в конце
import java.util.Scanner;
import java.math.*;
abstract class ccFctrl {
public static long countZero(BigInteger a){
long noOfZero=0;
long b;
do{
b =noOfZero;
if(a.remainder(BigInteger.TEN)==BigInteger.ZERO){
noOfZero++;
}
a.divide(BigInteger.TEN);
}while((noOfZero!=0)&&(noOfZero!=b));
return noOfZero;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int numOfFctrlsToCalculat=s.nextInt();
BigInteger fctrl=new BigInteger("1");
BigInteger inc=new BigInteger("1");
int num;
long[] count=new long[numOfFctrlsToCalculat];
System.out.println();
for(int i=0;i<numOfFctrlsToCalculat;i++){
num=s.nextInt();
for(int j=1;j<=num;j++){
fctrl=fctrl.multiply(inc);
inc=inc.add(BigInteger.ONE);
}
inc=BigInteger.ONE;
count[i]=countZero(fctrl);
System.out.println();
}
for(int i=0;i<numOfFctrlsToCalculat;i++){
System.out.println(count[i]);
}
s.close();
}
}
IDE на компилятор постоянно показывает мне ошибку. просто не получается, почему код не работает
Какой вклад вы даете? – NPE
OK, явная ошибка: 'a.divide (BigInteger.TEN);' должен быть 'а = a.divide (BigInteger.TEN);' , как BigInteger неизменен – traylz