#include<math.h>
#include<string.h>
#include<string>
#include<iostream>
using namespace std;
long int convert_base10(char *num, int base)
{
int len, dig;
long int result = 0;
len = strlen(num);
for(int i=0; i<len; i++)
{
if((num[len-i-1] >= 'A') && (num[len-i-1] <= 'F'))
dig = num[len-i-1] - 55;
else
dig = num[len-i-1] - 48;
result += (dig * pow(base, i));
}
return result;
}
void convert_basei(long int num, int base, string &result1)
{
bool error = false;
int pos = 6;
char result[7], rem;
// initially storing space on all position
for(int i=0; i<7; i++)
result[i] = ' ';
while(num)
{
if((num % base) >= 10)
rem = (num % base) + 55;
else
rem = (num % base) + 48;
result[pos] = rem;
num /= base;
pos--;
if(pos < 0 && num > 0)
{
error = true;
break;
}
}
if(error == true)
result1 = " ERROR";
else
result1 = result;
}
int main()
{
std::cout << "About to start..." << std::endl;
char num[7];
string result;
int base1, base2;
std::cout << "About to read input..." << std::endl;
while(std::cin>>num>>base1>>base2)
{
std::cout << "Got [" << num << ", " << base1 << ", " << base2 << "]" << std::endl;
long int temp = convert_base10(num, base1);
convert_basei(temp, base2, result);
cout<<result<<endl;
}
std::cout << "got no input" << std::endl;
}
I2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZTxzdHJpbmcuaD4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxpb3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGludCBjb252ZXJ0X2Jhc2UxMChjaGFyICpudW0sIGludCBiYXNlKQp7CiAgICBpbnQgbGVuLCBkaWc7CiAgICBsb25nIGludCByZXN1bHQgPSAwOwogICAgbGVuID0gc3RybGVuKG51bSk7CiAgICBmb3IoaW50IGk9MDsgaTxsZW47IGkrKykKICAgIHsKICAgICAgICBpZigobnVtW2xlbi1pLTFdID49ICdBJykgJiYgKG51bVtsZW4taS0xXSA8PSAnRicpKQogICAgICAgICAgICBkaWcgPSBudW1bbGVuLWktMV0gLSA1NTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGRpZyA9IG51bVtsZW4taS0xXSAtIDQ4OwogICAgICAgIHJlc3VsdCArPSAgKGRpZyAqIHBvdyhiYXNlLCBpKSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9Cgp2b2lkIGNvbnZlcnRfYmFzZWkobG9uZyBpbnQgbnVtLCBpbnQgYmFzZSwgc3RyaW5nICZyZXN1bHQxKQp7CiAgICBib29sIGVycm9yID0gZmFsc2U7CiAgICBpbnQgcG9zID0gNjsKICAgIGNoYXIgcmVzdWx0WzddLCByZW07CiAgICAvLyBpbml0aWFsbHkgc3RvcmluZyBzcGFjZSBvbiBhbGwgcG9zaXRpb24KICAgIGZvcihpbnQgaT0wOyBpPDc7IGkrKykKICAgICAgICByZXN1bHRbaV0gPSAnICc7CiAgICB3aGlsZShudW0pCiAgICB7CiAgICAgICAgaWYoKG51bSAlIGJhc2UpID49IDEwKQogICAgICAgICAgICByZW0gPSAobnVtICUgYmFzZSkgKyA1NTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHJlbSA9IChudW0gJSBiYXNlKSArIDQ4OwogICAgICAgIHJlc3VsdFtwb3NdID0gcmVtOwogICAgICAgIG51bSAvPSBiYXNlOwogICAgICAgIHBvcy0tOwogICAgICAgIGlmKHBvcyA8IDAgJiYgbnVtID4gMCkKICAgICAgICB7CiAgICAgICAgICAgIGVycm9yID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgIH0KICAgIGlmKGVycm9yID09IHRydWUpCiAgICAgICAgcmVzdWx0MSA9ICIgIEVSUk9SIjsKICAgIGVsc2UKICAgICAgICByZXN1bHQxID0gcmVzdWx0Owp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6Y291dCA8PCAiQWJvdXQgdG8gc3RhcnQuLi4iIDw8IHN0ZDo6ZW5kbDsKCiAgICBjaGFyIG51bVs3XTsKICAgIHN0cmluZyByZXN1bHQ7CiAgICBpbnQgYmFzZTEsIGJhc2UyOwogICAgc3RkOjpjb3V0IDw8ICJBYm91dCB0byByZWFkIGlucHV0Li4uIiA8PCBzdGQ6OmVuZGw7CiAgICB3aGlsZShzdGQ6OmNpbj4+bnVtPj5iYXNlMT4+YmFzZTIpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJHb3QgWyIgPDwgbnVtIDw8ICIsICIgPDwgYmFzZTEgPDwgIiwgIiA8PCBiYXNlMiA8PCAiXSIgPDwgc3RkOjplbmRsOwoKICAgICAgICBsb25nIGludCB0ZW1wID0gY29udmVydF9iYXNlMTAobnVtLCBiYXNlMSk7CiAgICAgICAgY29udmVydF9iYXNlaSh0ZW1wLCBiYXNlMiwgcmVzdWx0KTsKICAgICAgICBjb3V0PDxyZXN1bHQ8PGVuZGw7CiAgICB9CiAgICBzdGQ6OmNvdXQgPDwgImdvdCBubyBpbnB1dCIgPDwgc3RkOjplbmRsOwp9Cgo=
About to start...
About to read input...
Got [1111000, 2, 10]
120@��4���N���x
Got [1111000, 2, 16]
78@��4���N���x
Got [2102101, 3, 10]
1765@��4���N����
Got [2102101, 3, 15]
7CA@��4���N����
Got [12312, 4, 2]
ERROR
Got [1A, 15, 2]
11001@��4���N���
Got [1234567, 10, 16]
12D687@��4���N�����
Got [ABCD, 16, 15]
D071@��4���N���ͫ
got no input