Java乘积为零(大数相乘)
需要注意的问题就是,大数!! 用BigInteger,这个处理大数是挺香的!(哈哈)
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n=in.nextInt();
BigInteger[] a = new BigInteger[n]; //大数BigInteger
BigInteger s = BigInteger.valueOf(1); //s求n个数相乘的乘积
for(int i=0;i<n;++i){
a[i] = in.nextBigInteger(); //输入n个数
if(i==0){
s = a[i]; //先把第一个数记录下来
}
else{
s = s.multiply(a[i]); //和剩下的数相乘 multiply是BigInteger中的乘法
}
}
String str = s.toString(); //将乘积转换为字符串
int cnt = 0;
for(int i=str.length()-1;i>=0;--i){ //逆序遍历
if(str.charAt(i)=='0'){//统计末尾0的个数
cnt++;
}
else{//不是0退出
break;
}
}
System.out.println(cnt);
}
}