Hướng dẫn giải của [LOOP_HNCODE_11] Tính giai thừa
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Cho số nguyên không âm n ~0 \le n \le 20~, hãy tính n! = 1 × 2 × 3 × ... × n, với 0! = 1.
Cách làm
Khởi tạo giaithua = 1. Dùng vòng for chạy i từ 1 đến n, mỗi lần nhân giaithua với i. Khi n = 0 vòng lặp không chạy nên kết quả là 1, đúng với định nghĩa 0! = 1.
Bẫy cần nhớ: 20! khoảng ~2{,}4 ?ot 10^{18}~ đã vượt quá giới hạn của int, nên phải dùng long long.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
// Giai thừa có thể rất lớn nên dùng long long (20! vẫn vừa)
long long giaithua = 1;
for (int i = 1; i <= n; i++) {
giaithua = giaithua * i;
}
cout << giaithua << "\n";
return 0;
}
Bình luận