SaveText.Ru

Без имени
  1. #include <iostream>
  2. #include <cmath>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. const char* DIGITS = "0123456789abcdefghijklmnopqrstuvwxyz";
  8.  
  9. int anyToDex(string str, short sys)
  10. {
  11.         int answer = 0, i, s = 0;
  12.         bool status = 0;
  13.         for (i = str.size(); i >= 0; i--)
  14.         {
  15.                 for (short j = sys; j >= 0; j--)
  16.                 {
  17.                         if (DIGITS[j] == str[i])
  18.                         {
  19.                                 answer += j * pow(sys, s);
  20.                                 s++;
  21.                         }
  22.                 }
  23.         }
  24.         if (str[0] == '-')
  25.         {
  26.                 return -answer;
  27.         }
  28.  
  29.         return answer;
  30. }
  31.  
  32. string dexToAny(int dex, short outSys)
  33. {
  34.         string answer = "", preAnswer = "";
  35.         short pro = 0;
  36.         bool minusStatus;
  37.         int i = 0;
  38.         if (dex < 0)
  39.         {
  40.                 dex = -dex;
  41.                 minusStatus = true;
  42.         }
  43.         while (dex > 1)
  44.         {
  45.                 pro = dex % outSys;
  46.                 dex /= outSys;
  47.                 answer[i] = DIGITS[pro];
  48.                 i++;
  49.         }
  50.         return answer;
  51. }
  52.  
  53. int main()
  54. {
  55.         short inSys, outSys;
  56.         string inNum;
  57.         int dex = 0;
  58.         cout << "return the number" << endl;
  59.         cin >> inNum;
  60.         cout << "n" << "return the first number system" << endl;
  61.         cin >> inSys;
  62.         cout << "n" << "return the final number system" << endl;
  63.         cin >> outSys;
  64.         dex = anyToDex(inNum, inSys);
  65.         cout << "n" << "your answer is: " <<
  66.                 dexToAny(dex, outSys) << endl;
  67.         system("pause");
  68.         return 0;
  69. }

Share with your friends:

Распечатать