Lorem ipsum dolor sit amet, consectetur adipiscing elit. Test link
Bài đăng

[C++] Đệ quy


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:
// factorial calculator
#include <iostream.h>
 
long factorial (long a)
{
  if (a > 1)
   return (a * factorial (a-1));
  else
   return (1);
}
 
int main ()
{
  long l;
  cout << "Type a number: ";
  cin >> l;
  cout << "!" << l << " = " << factorial (l);
  return 0;
}
Type a number: 9
!9 = 362880
Chú ý trong hàm factorial chúng ta có thể lệnh gọi chính nó nhưng chỉ khi tham số lớn hơn 1, nếu không thì hàm sẽ thực hiện một vòng lặp vô hạn vì sau khi đến 0 nó sẽ tiếp tục nhân cả những số âm.
Hàm này có một hạn chế là kiểu dữ liệu mà nó dùng (long) không cho phép tính giai thừa quá 12!.

Đăng nhận xét

© KoyLazy. All rights reserved. Developed by Jago Desain