19/11/2018, 19:41
Tính giai thừa trong C++
Học lập trình C++ Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1. Ví dụ: giai thừa của 5 là 1*2*3*4*5 = 120 Có 2 cách để viết chương trình tính giai thừa trong C++: Tính giai thừa không sử ...
Học lập trình C++
Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.
Ví dụ: giai thừa của 5 là 1*2*3*4*5 = 120
Có 2 cách để viết chương trình tính giai thừa trong C++:
- Tính giai thừa không sử dụng đệ quy.
- Tính giai thừ có sử dụng đệ quy.
Tính giai thừa không sử dụng đệ quy
Ví dụ chương trình tính giai thừa trong C++ không sử dụng phương pháp đệ quy:
/**
* Tinh giai thua KHONG dung phuong phap de quy
*
* @author viettuts.vn
*/
#include <iostream>
using namespace std;
/**
* tinh giai thua
*
* @author viettuts.vn
* @param n: so nguyen duong
* @return giai thua cua so n
*/
long tinhGiaithua(int n) {
int i;
long giai_thua = 1;
if (n == 0 || n == 1) {
return giai_thua;
} else {
for (i = 2; i <= n; i++) {
giai_thua *= i;
}
return giai_thua;
}
}
/**
* Ham main
*/
int main() {
int a = 5;
int b = 0;
int c = 10;
cout << "Giai thua cua " << a << "la: " << tinhGiaithua(a) << endl;
cout << "Giai thua cua " << b << "la: " << tinhGiaithua(b) << endl;
cout << "Giai thua cua " << c << "la: " << tinhGiaithua(c) << endl;
}
Kết quả:
Giai thua cua 5 la: 120 Giai thua cua 0 la: 1 Giai thua cua 10 la: 3628800
Tính giai thừa có sử dụng đệ quy
Ví dụ chương trình tính giai thừa trong C++ có sử dụng phương pháp đệ quy:
/**
* Tinh giai thua KHONG dung phuong phap de quy
*
* @author viettuts.vn
*/
#include <iostream>
using namespace std;
/**
* tinh giai thua
*
* @author viettuts.vn
* @param n: so nguyen duong
* @return giai thua cua so n
*/
long tinhGiaithua(int n) {
if (n > 0) {
return n * tinhGiaithua(n - 1);
} else {
return 1;
}
}
/**
* Ham main
*/
int main() {
int a = 5;
int b = 0;
int c = 10;
cout << "Giai thua cua " << a << "la: " << tinhGiaithua(a) << endl;
cout << "Giai thua cua " << b << "la: " << tinhGiaithua(b) << endl;
cout << "Giai thua cua " << c << "la: " << tinhGiaithua(c) << endl;
}
Kết quả:
Giai thua cua 5 la: 120 Giai thua cua 0 la: 1 Giai thua cua 10 la: 3628800
Học lập trình C++