蓝桥杯Java乘积为零(大数相乘)

 

Java乘积为零(大数相乘)

蓝桥杯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);
	}
}

 

上一篇:JAVA 蓝桥杯 八次求和省赛真题


下一篇:Java大数源码剖析(一) - BigInteger的底层数据结构