Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <cmath>
- using namespace std;
- int to10(int from, string number)
- {
- int number10 = 0;
- int degree = 0;
- for (int i = number.length() - 1; i >= 0; i--)
- {
- if (number[i] <= '9')
- {
- if (number[i] - 48 >= from || number[i] < 48)
- {
- cout << "ERROR";
- return 0;
- }
- number10 += (number[i] - 48) * pow(from, degree);
- }
- else
- {
- if (number[i] - 55 >= from || number[i] > 90)
- {
- cout << "ERROR";
- return 0;
- }
- number10 += (number[i] - 55) * pow(from, degree);
- }
- degree++;
- }
- }
- string togiven(int number10, int to)
- {
- string numberto;
- while(number10 > 0)
- {
- if (number10 % to <= '9')
- numberto += number10 % to + 48;
- else
- numberto += number10 % to + 55;
- number10 /= to;
- }
- std :: reverse(numberto.begin(), numberto.end());
- return numberto;
- }
- int main()
- {
- int from, to;
- string number;
- cin >> from;
- cin >> to;
- cin >> number;
- if (number == "0" || number == "1")
- {
- cout << number;
- return 0;
- }
- int number10 = to10(from, number);
- string numberto = togiven(number10, to);
- cout << numberto;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement