Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
---|---|---|---|---|---|
3s | 8192K | 1164 | 435 | Standard |
The expression N!, read as ``N factorial," denotes the product of the first N positive integers, where N is nonnegative. So, for example,
N | N! |
0 | 1 |
1 | 1 |
2 | 2 |
3 | 6 |
4 | 24 |
5 | 120 |
10 | 3628800 |
For this problem, you are to write a program that can compute the last non-zero digit of any factorial for ( ). For example, if your program is asked to compute the last nonzero digit of 5!, your program should produce ``2" because 5! = 120, and 2 is the last nonzero digit of 120.
1 2 26 125 3125 9999
1 -> 1 2 -> 2 26 -> 4 125 -> 8 3125 -> 2 9999 -> 8
This problem is used for contest: 106 157 192
#include<iostream> #include<stdio.h> using namespace std; int main() { int n; while(scanf("%d",&n)==1) { int sum=1; for(int i=1;i<=n;i++) { sum=sum*i; while(sum%10==0)sum=sum/10; sum=sum%100000;//这里之所以不是/10是因为有能发生进位的情况。。。 } while(sum%10==0)sum=sum/10; sum=sum%10; printf("%5d -> %d\n",n,sum); } return 0; }