USACO Section 3.2: Factorials

这题注意要保存%10000的数。

 1 /*

 2 ID: yingzho1

 3 LANG: C++

 4 TASK: fact4

 5 */

 6 #include <iostream>

 7 #include <fstream>

 8 #include <string>

 9 #include <map>

10 #include <vector>

11 #include <set>

12 #include <algorithm>

13 #include <stdio.h>

14 #include <queue>

15 #include <cstring>

16 #include <cmath>

17 #include <list>

18 #include <cstdio>

19 #include <cstdlib>

20 

21 using namespace std;

22 

23 ifstream fin("fact4.in");

24 ofstream fout("fact4.out");

25 

26 const int inf = 100000000;

27 

28 int N;

29 

30 int main()

31 {

32     fin >> N;

33     vector<int> f(N+1);

34     f[1] = 1;

35     for (int i = 2; i < f.size(); i++) {

36         //cout << f[i-1] << endl;

37         int tmp = f[i-1]*i;

38         while (tmp % 10 == 0) tmp /= 10;

39         f[i] = tmp % 10000;

40     }

41     fout << f[N] % 10 << endl;;

42 

43     return 0;

44 }

 

你可能感兴趣的:(USACO)