#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'; } |
English