TÍNH N!
- Mô tả
-n! (n giai thừa) là
tích các số từ 1 cho đến chính nó.
-nghĩa là
n!=1*2*3*...(n-1)*n;
ví dụ:
6!=1*2*3*4*5*6=720;
- Bài toán đặt ra:
Tính F(x) với
1<=x<=500
Cho hàm
F(x), x ≥ 0 được định nghĩa như sau:
F(x) = S(x)!
Trong đó S(x): tổng các
chữ số của x.
- Cách giải đề xuất:
Ở đây mình muốn ví dụ
với các bạn về đệ quy do đó mình sẽ viết hàm giai thừa theo đệ quy:
- đệ quy của
giai thừa là gì?
+ 1!=1;
+ n!=n*(n-1)! lặp cho đến khi n=1;
nghĩa là:
ví dụ 3! thì 3!=3*2!
mà 2!=2*1!
mà 1!=1
==> 3!=3*2*1 = 6
- tính tổng các chữ số
của số x:
ví dụ 456
thì S(456)=15
vậy chúng
ta chỉ cần lặp đi lặp lại quá trình sau cho đến khi x=0
+
s=s+(x % 10) // (x%10)=x mod 10: lấy phần dư của phép chia x cho
10
+
x= (x /10) // (x/10) theo C/C++ là phép chia nguyên do đó
sẽ = x div 10
- Bài giải tham khảo:
Không có nhận xét nào:
Đăng nhận xét