输入一个整数链表,求均值。别傻傻地认为直接遍历数组,做加法,然后输出均值就好了。需要考虑当输入的整数为Integer.MAX_VALUE时,直接将两个整数相加会产生溢出,需要使用Long保存sum。 public class AddAllNumber { public static Double averageOfArray(List<Integer> list){ long sum = 0; for(Integer item : list) sum += item; return (sum * 1.0)/list.size(); } public static void main(String[] args){ List<Integer> list = new ArrayList<>(); list.add(Integer.MAX_VALUE); list.add(Integer.MAX_VALUE); list.add(Integer.MAX_VALUE); System.out.println(AddAllNumber.averageOfArray(list)); } }
整数相加溢出的解决办法:使用long
最新推荐文章于 2022-04-10 00:21:59 发布