再帰と非再帰はそれぞれnを求める階乗を実現する

558 ワード

//           n    

#include
#include

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:
"); scanf("%d",&n); printf("%d!=%d
",n,a(n)); printf("%d!=%d
",n,b(n)); system("pause"); return 0; }

注意:ここで私は再帰的なコードを書き始めたばかりの時、判断条件はn=1であれば;は、1を返します.このとき再帰に入りますが、結果はすべて1になります.再帰を使うときは、この問題に注意してほしい.