mitakvd

4. Mayan Calculator

Nov 17th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. vector<string> readInput(int num, int &size)
  8. {
  9.     vector<string> result;
  10.     for (int i = 0; i < num; i++)
  11.     {
  12.         string line;
  13.         getline(cin, line);
  14.         result.push_back(line);
  15.         size = line.size();
  16.     }
  17.     return result;
  18. }
  19.  
  20. void print(vector<pair<int, string>> &alphabet, string num)
  21. {
  22.     const int sizeOfNum = num.size();
  23.     for (int i = 0; i < sizeOfNum; i++)
  24.     {
  25.         int number = (num[i] - '0');
  26.         const int size = alphabet.size();
  27.         for (int j = 0; j < size; j++)
  28.         {
  29.             if (number == alphabet[j].first)
  30.             {
  31.                 cout << alphabet[j].second;
  32.                 break;
  33.             }
  34.         }
  35.     }
  36.  
  37. }
  38.  
  39. void findDigits(const vector<string> &vec, int size, string number)
  40. {
  41.     int sizeOfDigit = size / 10;   
  42.     const int sizeOfVec = vec.size();
  43.     for (int i = 0; i < sizeOfVec; i++)
  44.     {
  45.         vector<pair<int, string>> result;
  46.         string line = vec[i];
  47.         int sizeOfString = vec[i].size();
  48.         for (int j = 0; j < (sizeOfString / sizeOfDigit); j++)
  49.         {
  50.             string digit = line.substr(0, 0 + sizeOfDigit);
  51.             result.push_back(pair<int, string> (j, digit));
  52.             line.erase(0, 0 + sizeOfDigit);
  53.         }
  54.  
  55.         print(result, number);
  56.         cout << endl;
  57.     }
  58. }
  59.  
  60. int main()
  61. {
  62.     int numberOfLines;
  63.     cin >> numberOfLines;
  64.     cin.ignore();
  65.     int sizeOfLine = 0;
  66.     vector<string> inputData = readInput(numberOfLines, sizeOfLine);
  67.  
  68.     string numToRepresent;
  69.     cin >> numToRepresent;
  70.  
  71.     findDigits(inputData, sizeOfLine, numToRepresent);
  72.  
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment