C++ dùng đệ quy và khử đệ quy

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á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 :

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
6Giai thua 6 la : 720
Code C

0123456789101112131415

#include

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 :

Xem thêm  Chuyển file PDF sang file Word bằng 3 cách đơn giản

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
4

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 !
Theo dõi lập trình không khó tại :

  • Forum: https://www.facebook.com/groups/LapTrinhKhongKho/
  • Youtube: https://www.youtube.com/HieuNguyenVanOfficial

Source: https://bem2.vn
Category: TỔNG HỢP

Rate this post

Bài viết liên quan

Để lại ý kiến của bạn:

Email của bạn sẽ không được hiển thị công khai.