hoangthienthach
18-11-2008, 02:36 AM
Các hàm có thể gọi chính nó. Điều này có thể có ích với một số tác vụ như là một số phương pháp sắp xếp hay tính giai thừa của một số. Ví dụ, để tính giai thừa của một số (n), công thức toán học của nó như sau:
n! = n * (n-1) * (n-2) * (n-3) ... * 1
và một hàm đệ qui để tính toán sẽ như sau:
#include<stdio.h>
#include <iostream.h>
long gt (long n)
{
if (n > 1)
return (n * gt (n-1));
else
return (1);
}
int main ()
{
long l;
cout << "Nhap l = ";
cin >> l;
cout << l <<"!" << " = " << gt (l);
return 0;
}
n! = n * (n-1) * (n-2) * (n-3) ... * 1
và một hàm đệ qui để tính toán sẽ như sau:
#include<stdio.h>
#include <iostream.h>
long gt (long n)
{
if (n > 1)
return (n * gt (n-1));
else
return (1);
}
int main ()
{
long l;
cout << "Nhap l = ";
cin >> l;
cout << l <<"!" << " = " << gt (l);
return 0;
}