Advertisement
Kolyach

4.8 fix

Dec 17th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <cmath>
  4.  
  5. using namespace std;
  6.  
  7. int converter10(char string[100000], char digits[100], int basis) {
  8.     int amount = strlen(string), summ = 0, digit_equivalent, i = 0;
  9.     for (amount; amount > 0; amount--) {
  10.         for (int j = 0; j < 35; j++) {
  11.             if (string[amount -1] == digits[j]) {
  12.                 digit_equivalent = j;
  13.                 summ += digit_equivalent * pow(basis, i);
  14.                 break;
  15.             }
  16.         }
  17.         i++;
  18.         digit_equivalent = 0;
  19.     }
  20.     return summ;
  21. }
  22. void converter_x(long int number, char otvet[100000], char digits[100000], int basis) {
  23.     int i = 0, ostatok = 0, int_part = 0;
  24.     while (number / basis > 0) {
  25.         ostatok = number % basis;
  26.         int_part = number / basis;
  27.         otvet[i] = digits[ostatok];
  28.         i++;
  29.         number = int_part;
  30.     }
  31.     if (number / basis == 0) {
  32.         otvet[i] = digits[number];
  33.     }
  34. }
  35.  
  36. int main() {
  37.     setlocale(LC_ALL, "Russian");
  38.     char default_number[100000], new_number[100], digit_mass[100] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
  39.     long int default_basis, new_basis, min_default_basis = 0;
  40.     /*cout << "Vvedite ishodnoe chislo: ";
  41.     cin >> default_number;
  42.     memset(&new_number, 0, sizeof(new_number));
  43.     for (int i = 0; i < strlen(default_number); i++) {
  44.         for (int j = 0; j < strlen(digit_mass); j++) {
  45.             if ((default_number[i] == digit_mass[j]) && j >= min_default_basis) {
  46.                 min_default_basis = j;
  47.                 break;
  48.             }
  49.         }
  50.     }
  51.     cout << "Vvedite ishodnuyu sistemu schisleniya: ";
  52.     cin >> default_basis;
  53.     if (default_basis < min_default_basis + 1) {
  54.         cout << "Osnovaniye slishkom malenkoe";
  55.     }
  56.     else {
  57.         cout << "Novoe osnovaniye: ";
  58.         cin >> new_basis;
  59.         if (new_basis == default_basis) {
  60.             cout << "Perevedennoe chislo: " << default_number << endl;
  61.         }
  62.         else if (new_basis == 10) {
  63.             cout << "Perevedennoe chislo: " << converter10(default_number, digit_mass, default_basis) << endl;
  64.         }
  65.         else {
  66.             long int new_chislo = converter10(default_number, digit_mass, default_basis);
  67.             converter_x(new_chislo, new_number, digit_mass, new_basis);
  68.             int x = strlen(new_number) - 1;
  69.             cout << "Perevedennoe chislo: ";
  70.             for (x; x >= 0; x--) {
  71.                 cout << new_number[x];
  72.             }
  73.             cout << endl;
  74.         }
  75.     }*/
  76.     for (int i = 2; i <= 35; i++) {
  77.         memset(&new_number, 0, sizeof(new_number));
  78.         converter_x(10, new_number, digit_mass, i);
  79.         int x = strlen(new_number) - 1;
  80.         for (x; x >= 0; x--) {
  81.             cout << new_number[x];
  82.         }
  83.         cout << endl;
  84.     }
  85.     system("pause");
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement