Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Viết chương trình tìm chữ số cuối cùng khác ~0~ của ~n!~ (giai thừa của ~n~)
Input
- Số nguyên không âm ~n~
Giới hạn
- ~0 \le n \le 10000~
Output
- Chữ số cuối cùng có giá trị khác 0 của ~n!~
Sample
Input #1
4
Output #1
4
Input #2
10
Output #2
8
Hint
- 4! = 24. Do đó chữ số cuối cùng khác 0 là 4
- 10! = 3628800.Do đó chữ số cuối cùng khác 0 là 8
- Vì ~n~ có thể lên tới ~10000~, nếu trực tiếp tính giá trị giai thừa của ~n~ có thể sẽ bị tràn số. Hãy thử tìm giải pháp khác xem sao.
Bình luận
h
sau khi tính giai thừa thì mình chia dư cho 1 số nào đó
code python nhaa! from math import * if name == "main": n = int(input()) x = factorial(n) y = str(x) for i in range(len(y)-1,-1,-1): if y[i] != '0': print(y[i]) break
#include <bits/stdc++.h>
using namespace std; long long n,s,i,j; int main(){ cin>>n; s=1; for(i=1;i<=n;i++){ s=s*i; j=i; while(j%5==0){ s=s/10; j=j/5; } s=s%1000000; } cout<<s%10; }
full ac nguồn của thầy Jimmy Hồ