#include <iostream>
using namespace std;
unsigned long long dp[30];
int dt[30];
int main()
{
dp[0]=1;
string data;
cin>>data;
int g=1;
for(int i=data.size();i>0;i--)
{
dt[g]=data[i-1]-48;
g++;
}
for(int i=1;i<=data.size();i++)
{
dp[i]=dp[i-1]*(dt[i]+1);
if(i>1&&dt[i]==1)
{
dp[i]+=dp[i-2]*(9-dt[i-1]);
}
}
cout<<dp[data.size()];
}
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 <iostream> using namespace std; unsigned long long dp[30]; int dt[30]; int main() { dp[0]=1; string data; cin>>data; int g=1; for(int i=data.size();i>0;i--) { dt[g]=data[i-1]-48; g++; } for(int i=1;i<=data.size();i++) { dp[i]=dp[i-1]*(dt[i]+1); if(i>1&&dt[i]==1) { dp[i]+=dp[i-2]*(9-dt[i-1]); } } cout<<dp[data.size()]; } |
English