#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()]; } |