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.
Mục lục bài viết
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 hoàn toàn có thể thiết kế xây dựng một hàm đệ quy để tính giai thừa như sau :
0
Bạn đang đọc: C++ dùng đệ quy và khử đệ quy
1234567
intgiaiThua(intn)
{
if(n==1)
return1;
returnn*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)!
Từ đây ta hoàn toàn có thể viết chương trình tính giai thừa bằng code C + +
012345678910111213141516
#include
usingnamespacestd;
intgiaiThua(intn)
{
if(n==1)
return1;
returnn*giaiThua(n-1);
}
intmain()
{
intn;
cin>>n;
cout<<" Giai thua "< return0; } Sau khi chạy chương trình trên ta có hiệu quả 0123 0123456789101112131415 #include
6Giai thua 6 la : 720
Code C
intgiaiThua(intn)
{
if(n==1)
return1;
returnn*giaiThua(n-1);
}
intmain()
{
int
n;
scanf(” % d “,và n ) ;
printf(” Giai thua % d la : % d “,n,giaiThua(n));
return0;
}
0123
6Giai thua 6 la : 720
Cách tính giai thừa bằng chiêu thức 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 :
012345678
intgiaiThua(intn)
{
intgiai_thua=1;
for(inti=1;i<=n;i++)
giai_thua*=i;
returngiai_thua;
}
Chương trình tính giai thừa bằng giải pháp lặp dùng code C + +
01234567891011121314151617
#include
usingnamespacestd;
intgiaiThua(intn)
{
intgiai_thua=1;
for(inti=1;i<=n;i++)
giai_thua*=i;
returngiai_thua;
}
intmain()
{
intn;
cin>>n;
cout<<" Giai thua "< return0; } 0123 Giai thua 4 la: 24 Bài viết mình đến đây là kết thúc. Cám ơn những bạn đã theo dõi !
4
Theo dõi lập trình không khó tại :
Source: https://bem2.vn
Category: TỔNG HỢP