标签:
1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #include <queue> 5 #include <vector> 6 #include <map> 7 #include <algorithm> 8 #include <cstring> 9 #include <cctype> 10 #include <cstdlib> 11 #include <cmath> 12 #include <ctime> 13 #include <climits> 14 using namespace std; 15 16 long long DP[20][20]; 17 18 void ini(void); 19 long long solve(int n); 20 int main(void) 21 { 22 int n,m; 23 24 ini(); 25 while(cin >> n >> m && n + m) 26 cout << solve(m + 1) - solve(n) << endl; 27 28 return 0; 29 } 30 31 void ini(void) 32 { 33 DP[0][0] = 1; 34 for(int i = 1;i <= 7;i ++) 35 for(int j = 0;j <= 9;j ++) 36 for(int k = 0;k <= 9;k ++) 37 if(j != 4 && !(j == 6 && k == 2)) 38 DP[i][j] += DP[i - 1][k]; 39 } 40 41 long long solve(int n) 42 { 43 int dig[20] = {0}; 44 int count = 1; 45 46 while(n) 47 { 48 dig[count] = n % 10; 49 n /= 10; 50 count ++; 51 } 52 53 long long ans = 0; 54 for(int i = count - 1;i >= 1;i --) 55 { 56 for(int j = 0;j < dig[i];j ++) 57 if(j != 4 && !(j == 2 && dig[i + 1] == 6)) 58 ans += DP[i][j]; 59 if(dig[i] == 4 || (dig[i + 1] == 6 && dig[i] == 2)) 60 break; 61 } 62 63 return ans; 64 }
标签:
原文地址:http://www.cnblogs.com/xz816111/p/4802155.html