Sunday, March 22, 2020

Những thuật toán tính giai thừa trong java

Trong toán học, giai thừa là một toán tử một ngôi trên tập hợp các số tự nhiên. Cho n là một số tự nhiên dương, "n giai thừa", ký hiệu n! là tích của n số tự nhiên dương đầu tiên. n! = 1x2x3x...x n VD: 4! = 1.2.3.4 = 24 8! = 1.2.3.....7.8 = 40 320 Đặc biệt, với n = 0, người ta quy ước 0! = 1. Ký hiệu n!
Những thuật toán tính giai thừa trong java

Thuật toán tìm giai thừa bằng giải thuật đệ 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:
int giaiThua(int n)
{
    if (n == 1)
        return 1;
    return n * giaiThua(n - 1);
}
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)!

Thuật toán tính giai thừa bằng phương pháp vòng 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:
int giaiThua(int n)
{
    int giai_thua = 1;
    for (int i = 1; i <= n; i++)
        giai_thua *= i;
    return giai_thua;
}

No comments:

Post a Comment