再帰と非再帰はそれぞれnを求める階乗を実現する
// 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になります.再帰を使うときは、この問題に注意してほしい.