给定一组长整数,求相加的结果

华为面试题:华为2019OD测试题(三)
给定一组长整数,求相加的结果

package cn.bf;

import java.math.BigDecimal;
import java.util.Scanner;

public class lianxi{
    public static void main(String[] args) {
        System.out.println("请输入要计算的长整型的个数");
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        String [] l=new String[i];
        if (i>2&&i<5){
            for (int j = 0; j < i; j++) {
                Scanner scanner1 = new Scanner(System.in);
                System.out.println("请输入第"+(j+1)+"个长整数:");
                l[j] = scanner1.nextLine();
            }
        }
        BigDecimal bigDecimal = new BigDecimal("0");
        BigDecimal add;
        if (l.length==3){
            BigDecimal bigDecimal1 = new BigDecimal(l[0]);
            BigDecimal bigDecimal2 = new BigDecimal(l[1]);
            BigDecimal bigDecimal3 = new BigDecimal(l[2]);
             add = bigDecimal.add(bigDecimal1).add(bigDecimal2).add(bigDecimal3);
        }
        else {
            BigDecimal bigDecimal1 = new BigDecimal(l[0]);
            BigDecimal bigDecimal2 = new BigDecimal(l[1]);
            BigDecimal bigDecimal3 = new BigDecimal(l[2]);
            BigDecimal bigDecimal4 = new BigDecimal(l[3]);
            add = bigDecimal.add(bigDecimal1).add(bigDecimal2).add(bigDecimal3).add(bigDecimal4);
        }
        System.out.println(add);
    }
}

答题思路:
任意长整型可以用String数组来存储,相加用BigDecimal类(这个是精确计算大数的加减乘除的类)。
第一次写不喜勿喷,有好的其他思路大家可以互相探讨

你可能感兴趣的:(基础算法,java)