Bài 39. Cách tính giai thừa trong C/C++

Bài số 37 trong 69 bài của series Học C Không Khó

Cách tính giai thừa trong c/c++ ? Bài viết này mình sẽ giới thiệu với các bạn cách tính giai thừa bằng phương pháp đệ quy và không dùng đệ quy.

Cách tính giai thừa trong C/C++
Công thức tính giai thừa trong toán học

Cách tính giai thừa bằng phương pháp đệ quy

  • Một số n! được định nghĩa như sau: n! = n*(n-1)*…*3*2*1
  • Trường hợp đặc biệt ta quy ước 0! =1
  • Công thức truy hồi: n! = n*(n-1)!

Từ công thức truy hồi ta có thể xây dựng một hàm đệ quy để tính giai thừa như sau:

  • Nếu n == 1 thì ta trả về giá trị 1.
  • Nếu không phải thì ta dùng công thức truy hồi để tính (n-1)!

Từ đây ta có thể viết chương trình tính giai thừa bằng code C++

Sau khi chạy chương trình trên ta có kết quả

Code C

Cách tính giai thừa bằng phương pháp lặp

  • Đầu tiên khởi tạo một biến giaithua với giá trị bằng 1;
  • Cho vòng lặp chạy từ 1 đến n. Với mỗi giá trị của i thì ta gán giaithua = giaithua*i;

Từ đây ta viết hàm tính giai thừa như sau:

Chương trình tính giai thừa bằng phương pháp lặp dùng code C++

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi!

Các bài viết trong SeriesBài trước: Bài 38. Đổi số thập phân sang bát phân và ngược lạiBài sau: Bài 40. Cách tính số Fibonacci trong C/C++

2 BÌNH LUẬN

  1. 2
    3
    4
    5
    6
    7

    int giaiThua(int n)
    {
    if (n == 1)
    return 1;
    return n * giaiThua(n – 1);
    }
    anh giẢI THÍCH lại đoạn này giúp em làm sao mà để máy hiểu giaithua(n-1)=(n-1)!

    • Vì ở bài này sử dụng hàm đệ quy ( có tính chất lặp ) nên khi đến return sẽ lại thực hiện hàm với giá trị n giảm đi 1 đơn vị. Bạn có thể debug để hiểu thêm về hàm đệ quy nhé.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây