一道经典的算法-从1加到n,(转载于csdn论坛)
题目:实现一个函数,计算1到n的和,当然n是变量
不能出现以下:
乘除操作,位操作,if-else,for,while,switch,?:三目运算符,全局变量,模版,标准库函数。
1,使用函数表的方法
1 typedef int(*F)(int); 2 3 int f0(int num) 4 { 5 return 0; 6 } 7 8 int fn(int num) 9 { 10 F ff[2] = { fn, f0 }; 11 12 return num+ff[!num](num-1); 13 }
2,运用逻辑运算
int func(int num,int *sum)
{
*sum += num;
return (num && func(num-1, sum));
}

浙公网安备 33010602011771号