一道经典的算法-从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));
}

 

posted @ 2012-06-05 17:48  云翔世界  阅读(668)  评论(0)    收藏  举报