Algs4-1.4.2修改ThreeSum防止两个int值相加可能溢出

1.4.2修改ThreeSum,正确处理两个较大的int值相加可能溢出的情况。
答:
图片
public class ThreeSum
{
    public static int count(int[] a)
    {
        int N=a.length;
        int cnt=0;
        long arg1;
        long arg2;
        long sum=0;
        for (int i=0;i<N;i++)
            for (int j=i+1;j<N;j++)
               for(int k=j+1;k<N;k++)
                  {
                     arg1=a[i];
                     arg2=a[j];
                     sum=arg1+arg2;
                     StdOut.println("sum="+sum);
                     if(sum==-a[k])
                     cnt++;
                 }
        return cnt;
    }
   
    public static void main(String[] args)
    {
        int[] a=In.readInts(args[0]);
        StdOut.println(count(a));
    }
}

posted @ 2018-10-26 08:57  修电脑的龙生  阅读(758)  评论(1编辑  收藏  举报