heatherhb

Problem 17

Jun 7th, 2011
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int ones(int num) {
  5.     int lets = 0;
  6.     if (num == 1 || num == 2 || num == 6)
  7.         lets = 3;
  8.     else if (num == 4 || num == 5 || num == 9)
  9.         lets = 4;
  10.     else if (num == 3 || num == 7 || num == 8)
  11.         lets = 5;
  12.     return lets;
  13. }
  14.  
  15. int tens(int num) {
  16.     int lets = 0;
  17.     if(num < 20) {
  18.         if (num == 10)
  19.             lets = 3;
  20.         else if (num == 11 || num == 12)
  21.             lets = 6;
  22.         else if (num == 15 || num == 16)
  23.             lets = 7;
  24.         else if (num == 13 || num == 14 || num == 18 || num == 19)
  25.             lets = 8;
  26.         else if (num == 17)
  27.             lets = 9;
  28.     } else {
  29.         lets = 5;                       //40, 50, 60
  30.         if (num % 10 > 0)
  31.             lets += ones(num % 10);
  32.         if (num >= 20 && num <= 39)     //20, 30
  33.             lets++;
  34.         else if (num >= 80 && num <= 99)//80, 90
  35.             lets++;
  36.         else if (num >= 70 && num <= 79)//70
  37.             lets += 2;
  38.     }
  39.     return lets;
  40. }
  41.  
  42. int letters(int num) {
  43.     int lets = 0;
  44.     int count = 0;
  45.     int number = num;
  46.     for(; number > 0; count++, number /= 10);
  47.     switch(count) {
  48.         case 1:
  49.             lets = ones(num);
  50.             break;
  51.         case 2:
  52.             lets = tens(num);
  53.             break;
  54.         case 3:
  55.             if(num % 100 == 0)
  56.                 lets = ones(num / 100) + 7;
  57.             else
  58.                 lets = ones(num / 100) + 10 + tens(num % 100);
  59.             break;
  60.         case 4:
  61.             lets = 11;
  62.             break;
  63.     }
  64.     return lets;  
  65. }
  66.  
  67. int main() {
  68.     long answer = 0;
  69.     for(int i = 1; i <= 1000; i++) {
  70.         answer += letters(i);
  71.     }
  72.     cout << answer << endl;
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment