【47】3求1+2+3+...+n

来源:互联网 发布:淘宝直通车一天烧50万 编辑:程序博客网 时间:2024/05/21 17:33

【47】3求1+2+3+…+n

  • 时间限制:1秒
  • 空间限制:32768K

题目描述
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、
case等关键字及条件判断语句(A?B:C)。
牛客网题目练级点击这里

VS2010代码:

/方法三:静态函数指针#include<iostream>using namespace std; typedef int (*fun)(int);int Terminator(int n){   return 0;}int Sum(int n){       static fun f[2]={Terminator, Sum};    return f[!!n](n-1)+n;}class Solution {public:    int Sum_Solution(int n) {        return Sum(n);    }};int main(){    Solution s1;    cout<<s1.Sum_Solution(5)<<endl;}

1)全局静态函数只在本编译单元有效。
2)类静态函数,对比普通成员函数,没有this指针,不能访问非static成员。
3)要说二者相同点,都是c++名字控制的手段:全局静态函数被局限在一个编译单元,通俗的将就是在一个cpp文件中定义的全局静态函数在另一个cpp文件中不能被调用。


1.定义函数指针类型:
typedef int (*fun_ptr)(int,int);
2.声明变量,赋值:
fun_ptr max_func=max;
也就是说,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。


函数的指针和类中函数指针
http://www.cnblogs.com/xianyunhe/archive/2011/11/26/2264709.html
类内函数指针数组
http://blog.csdn.net/kkaxiao/article/details/6083357

0 0