题目描述:
在不使用“if”“else”“while”“for”“switch”“/”“*”“?:”等运算符的条件下实现程序100 + 99 + 98 + 97 +……+0
#include <stdio.h>
//利用递归实现
int fun1(int n)
{
static int sum = 0;
sum += n;
n && fun1(n - 1);
return sum;
}
//利用二维数组实现
int fun2()
{
char arr[100][101] = {0};
int sum = sizeof(arr)>>1;
return sum;
}
//优化二维数组的实现
int fun3()
{
char(* arr)[100][101];//只定义一个指针,不需要内存
int sum = sizeof(*arr)>>1;
return sum;
}
int main()
{
/*
测试fun3函数
*/
int sum3 = fun3();
printf("fun3_sum3 = %d\n",sum3);
/*
测试fun2函数
*/
int sum2 = fun2();
printf("fun2_sum2 = %d\n",sum2);
/*
测试fun1函数
*/
int sum1 = fun1(100);
printf("fun1_sum1 = %d\n",sum1);
return 0;
}