要求不能使用乘除法、for、while、if、else、switch、case等关键字
以及条件判断语句(A?B:C)
typedef int (*fptrSum)(int n);
struct M{
fptrSum Sum;
};
struct M A[2];
int Sum0(int n)
{
return n;
}
int Sum1(int n)
{
return A[!!(n-1)].Sum(n-1) + n;
}
int main()
{
int val = 0;
int n = 100;
A[0].Sum = Sum0;
A[1].Sum = Sum1;
val = A[1].Sum(n);
printf("%d",val);
system("PAUSE");
}
这道题的关键就是多态,函数指针的使用,根据n值决定到底使用哪个求和函数