拓展习题1

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章