#include <bits/stdc++.h> using namespace std; const int MAXN=1e6; long long dp[MAXN]; long long cmb[MAXN]; string s; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); for(int i=0;i<10;i++) for(int j=0;j<10;j++) cmb[i+j]++; dp[1]=1; cin>>s; s="00"+s; for(int i=2;i<s.size();i++) { dp[i]+=dp[i-1]*cmb[s[i]-'0']; if((s[i-1]-'0')) dp[i]+=dp[i-2]*cmb[(s[i-1]-'0')*10+(s[i]-'0')]; } cout<<dp[s.size()-1]<<'\n'; }
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 27 28 29 | #include <bits/stdc++.h> using namespace std; const int MAXN=1e6; long long dp[MAXN]; long long cmb[MAXN]; string s; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); for(int i=0;i<10;i++) for(int j=0;j<10;j++) cmb[i+j]++; dp[1]=1; cin>>s; s="00"+s; for(int i=2;i<s.size();i++) { dp[i]+=dp[i-1]*cmb[s[i]-'0']; if((s[i-1]-'0')) dp[i]+=dp[i-2]*cmb[(s[i-1]-'0')*10+(s[i]-'0')]; } cout<<dp[s.size()-1]<<'\n'; } |