題目描述:
在不使用“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;
}