剑指offer_求1+2+3+...+n

来源:互联网 发布:基础地理数据分类 编辑:程序博客网 时间:2024/06/03 18:31
/*求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。剑指offer思路1:利用构造函数*/class  Sum{public static int n;public static int sum;Sum(){n++;sum+=n;}public static int sum(int n) {        Sum[] array=new Sum[n];        /*         *  构造了对象数组是不假,        但是调用的是创建数组引用对象的构造函数,        还要实例化数组中的对象n次才行,不能避免for循环         * */             for(int i=0;i<n;i++)        {        array[i]=new Sum();        }return sum;    }//利用异常public static int sum1(int n){try{int a=1/n;return n+sum(n-1);}catch (Exception e){}return 0;}//利用短路public static int sum2(int n){int res=n;boolean flag=(n>0)&&((res+=sum(n-1))==0);return res;}public static void main(String[] args) {System.out.println(sum(1));}}

原创粉丝点击