题目: 求 1+2+...n
要求不能使用除法, for, while, if, else, switch, case 等关键字以及条件判断语句 (a?b:c).
这道题有点意思.
我个人的方法: 借助递归, 函数指针.
以下是源码:
/*
*author: dengzhaoqun
*/
#include <stdio.h>
int add(int n);
int end(int n);
int fun(int n);
int (*ptr[2])(int n);
int main()
{
int n, sum;
printf("Input n: ");
scanf("%d", &n);
ptr[0] = &add;
ptr[1] = &end;
sum = fun(n);
printf("sum: %d\n", sum);
return 0;
}
int fun(int n)
{
return ptr[!n](n);
}
int add(int n)
{
return( n + fun(n - 1));
}
int end(int n)
{
return 0;
}