题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C).
使用函数指针
1234567891011121314151617 |
//使用函数指针 递归加法typedef (*fun)(int);int func1(int n) { return 0;}int func2(int n) { fun f[2] = {func1, func2}; return n + f[(n != 0)](n - 1);}void function1() { cout << func2(10) << endl;}//----->fun2 end |
使用静态变量
1234567891011121314151617181920212223242526272829 |
//----->fun2 start//使用静态变量class test { static int N; static int sum;public : test() { sum += ++N; } 大专栏 |