再帰によって解決できる問題はすべて反復(ループ)に変換できます
。再帰の利点:プログラムをより明確かつ簡潔にします。再帰によって、より強力な関数をより少ないコードで実現できます
。再帰の欠点:再帰が増加し、多くの時間とメモリを消費します
0〜8の階乗を再帰的に計算します
#include <iostream>
using namespace std;
long factorial(int num)
{
if(num==0)
return 1;
else
return num*factorial(num-1);
}
int main()
{
int i;
for(i=0; i<9; i++)
cout << i << "的阶乘:" << factorial(i) << endl;
return 0;
}
ループ内の0〜8の階乗を計算します
#include <iostream>
using namespace std;
long factorial(int num)
{
int i, result=1;
if(num==0)
return 1;
for(i=num; i>=1; i--)
result*=i;
return result;
}
int main()
{
int i;
for(i=0; i<9; i++)
cout << i << "的阶乘:" << factorial(i) << endl;
return 0;
}