Codeforces Round #439 (Div. 2) Problem B (Codeforces 869B)
题目大意 给定a和b求b的阶乘除以a的阶乘的商的末尾数字。
显然,当a和b的差大于等于10的时候结果为0.
当a和b的差小于10的时候,暴力计算就好了(当然,不是把a!和b!)。
Code
1 /** 2 * Codeforces 3 * Problem#869B 4 * Accepted 5 * Time: 30ms 6 * Memory: 0k 7 */ 8 #include <bits/stdc++.h> 9 #ifndef WIN32 10 #define Auto "%lld" 11 #else 12 #define Auto "%I64d" 13 #endif 14 using namespace std; 15 16 long long a, b; 17 18 inline void init() { 19 scanf(Auto""Auto, &a, &b); 20 } 21 22 inline void solve() { 23 if(b - a > 10) puts("0"); 24 else { 25 int res = 1; 26 for(int i = b % 10, c = 0; c < b - a; c++, i = (i + 9) % 10) { 27 res = (res * i) % 10; 28 } 29 printf("%d\n", res); 30 } 31 } 32 33 int main() { 34 init(); 35 solve(); 36 return 0; 37 }