fork(4) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. long long f(string s){
  5. if (s.length() == 1) {
  6. return 1;
  7. }
  8.  
  9. if (s.length() == 2) {
  10. if (s[0] > '0' && s[0] < '3') {
  11. if (s[1] > '0' && s[1] < '7') {
  12. return 2;
  13. }
  14. else if(s[1] == '0'){
  15. return 1;
  16. }
  17. else{
  18. return 1;
  19. }
  20. }
  21. else{
  22. return 1;
  23. }
  24. }
  25.  
  26. if (s[0] > '0' && s[0] < '3') {
  27. if (s[1] > '0' && s[1] < '7') {
  28. return f(string(s.begin() + 1, s.end())) + f(string(s.begin() + 2, s.end()));
  29. }
  30. else if(s[1] == '0'){
  31. return f(string(s.begin() + 2, s.end()));
  32. }
  33. else{
  34. return f(string(s.begin() + 1, s.end()));
  35. }
  36. }
  37. else{
  38. return f(string(s.begin() + 1, s.end()));
  39. }
  40. }
  41.  
  42. int main() {
  43. while (true) {
  44. string s;
  45. cin >> s;
  46. if (s == "0") {
  47. break;
  48. }
  49. cout << f(s) << endl;
  50. }
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0s 3420KB
stdin
25114
1111111111
3333333333
205
0
stdout
6
89
1
1