以下函数的结果是什么?  int cal(int x)   {   if(x==0)   return 0;   else   return x+cal(x-1);   }

解决方案 »

  1.   

    x>0?(1+x)*x/2:0
    是求1到x的和 可以用(首项+末项)*项数/2
      

  2.   

    就是n+n-1+n-1+...+1+0的求和,也就是n+1(n+0)/2
      

  3.   

    public class Col
    {
        
        public int cal(int i)
        {
            if (i>100)
                return 0;
            return cal (++i)+i;    }
        public static void main(String[] argv)
        {
            Col cou=new Col();
            int i=0;
            System.out.println(cou.cal(i));
            
        }}这不一样吗???
      

  4.   

    当输入的X是负-的整数,输出int 取值范围内的多个负数和,即从x+x-1+.....+-2147483648,当X大于0时,输出的才是x+x-1+......+0,若X=-2147483648,则会产生溢出。
      

  5.   

    返回是这个参数的1 一直加到X这个值的和,但是这个X这个值不能太大,一般不会超过几万吧,
    因为java有个机制,递归太深就抛栈溢出异常了!!!!用这个方法来求1 一直加到 X 的和是不可取的!!!