拓展習題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;
}

 

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