#include <bits/stdc++.h> using namespace std; long long DFS(long long n) { long long res = 0; if(!n) return 1LL; int x = n % 100; if(9 < x && x < 19) { for(int i = 0; i < 10; i++) if(x - i < 10) res++; res *= DFS(n / 100); } x = n % 10; res += (long long)(x + 1) * DFS(n / 10); return res; } int main() { long long n; scanf("%lld", &n); long long res = DFS(n); printf("%lld", res); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <bits/stdc++.h> using namespace std; long long DFS(long long n) { long long res = 0; if(!n) return 1LL; int x = n % 100; if(9 < x && x < 19) { for(int i = 0; i < 10; i++) if(x - i < 10) res++; res *= DFS(n / 100); } x = n % 10; res += (long long)(x + 1) * DFS(n / 10); return res; } int main() { long long n; scanf("%lld", &n); long long res = DFS(n); printf("%lld", res); } |