遞迴和非遞迴分別實現求n的階乘

不會程式設計的碼農石發表於2018-11-29
//遞迴和非遞迴分別實現求n的階乘 

#include<stdio.h>
#include<stdlib.h>

int a(int n)
{
	if(n>1)
	{
		return n * a(n-1);
		
	}
	return 1;
}

int b(int n)
{
	int s = 1;
	for(; n>=1; n--)
	{
		s *= n;
	}
	return s;
}
int main()
{
	int n = 0;
	printf("請輸入n:\n");
	scanf("%d",&n);
	printf("%d!=%d\n",n,a(n));
	printf("%d!=%d\n",n,b(n));

	system("pause");
	return 0;
}

注意:這裡我在剛開始寫遞迴的程式碼時,判斷條件是如果n=1;返回1;
這時候會進入遞迴但是得到的結果都將是1。希望大家在使用遞迴時一定要注意這個問題。

相關文章