zoukankan      html  css  js  c++  java
  • [面试算法题重做]求1+2+...+n

    题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。

    不能用条件语句,基本上只有考虑递归。

    常规解法:

    利用构造函数的每次初始化来实现递增

    class Sum {
    public:
        Sum() {num++; sum+=num;}
        static void Reset() {num = 0; sum = 0;}
        static int GetSum() {
            return sum;
        }
    private:
        static int num;
        static int sum;
    };
    
    int Sum::num = 0;
    int Sum::sum = 0;
    
    int SS(int i) {
        Sum::Reset();
        Sum *p = new Sum[i];
        delete []p;
        p = NULL;
    
        return Sum::GetSum();
    }

    &&法:这个对&&的理解简直神了。

    int addfunc(int i){
        int r = 0;
        i && (r= i + addfunc(i-1) );
        return r;
    }
  • 相关阅读:
    php验证码
    php上传
    ajax的用法 资料
    ajax如何使用
    AJAX
    基础概念梳理 :
    ICompare 可比较接口
    强类型 和弱类型 c#
    .ne 基础(2)
    .net 基础(一)
  • 原文地址:https://www.cnblogs.com/hustcser/p/4121657.html
Copyright © 2011-2022 走看看