zoukankan      html  css  js  c++  java
  • 求1+2+...+n

    不用if.else.while等一切的条件判断

    这题真是涨知识了:

    1. 

    #include<stdio.h>
    typedef int (*fun)(int);
    int f1(int i)
    {
        return 0;
    }
    int f2(int i)
    {
        fun f[2]={ f1,f2 };
        return i+f[!!i](i-1);
    }
    int main()
    {
        int sum = f2(100);
        printf("%d
    ",sum);
        return 0;
    }
    

    2. 运用c++的static性质

    class Temp
    {
    public:
          Temp() { ++ N; Sum += N; }
    
          static void Reset() { N = 0; Sum = 0; }
          static int GetSum() { return Sum; }
    
    private:
          static int N;
          static int Sum;
    };
    
    int Temp::N = 0;
    int Temp::Sum = 0;
    
    int solution1_Sum(int n)
    {
          Temp::Reset();
    
          Temp *a = new Temp[n];
          delete []a;
          a = 0;
    
          return Temp::GetSum();
    }

    3.

    template <int n> struct solution4_Sum
    {
          enum Value { N = solution4_Sum<n - 1>::N + n};
    };
    
    
    template <> struct solution4_Sum<1>
    {
          enum Value { N = 1};
    };


    转自

    http://zhedahht.blog.163.com/blog/static/2541117420072915131422/


    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    一周心得5:
    一周心得4:
    历史上两个人合作成功的案例:
    对结对编程的理解:
    一周心得3:
    一周心得2:
    有关IT行业模仿案例及自己的评价与解析:
    一周心得:
    不懂的问题:
    自我介绍以及期望与目标:
  • 原文地址:https://www.cnblogs.com/vintion/p/4116867.html
Copyright © 2011-2022 走看看