#include <iostream>
#include <stdlib.h>
#include <string>
#include <math.h>
#include <ctime>
using namespace std;
class Chisla
{
int size;
int CC;
string Value;
int result;
public:
//Конструктор класса
Chisla(string Chislo)
{
Value = Chislo;
}
private:
//поиск системы счисления
int poiskbase()
{
int i=0;
char temp=0;
while(Value[i]!='\0')
{
if(temp<Value[i])
{
temp=Value[i];
}
i++;
}
size = i;
int temp2=char2num(temp);
srand(time(0));
return rand()%32+(temp2);
}
//перевод из найденной системы счисления в десятичную
int returnvalue()
{
int Value2[size];
int Value3 = 0;
int size2=size-1;
for(int i=0;i<size;i++)
{
Value2[i] = char2num(Value[i]);
}
if(size>1)
{
for(int i=0;i<size;i++)
{
Value3=Value3+(Value2[i]*pow(CC,size2));
size2--;
}
}else
{
Value3=Value2[0];
}
return Value3;
}
//Конвертация символа в число
char char2num(char num)
{
if(num <= '9')
return int(num - '0');
else if(num >= 'a')
return int(num - 'a'+10);
}
public:
//Методы вывода ответов
int resultbase()
{
return CC = poiskbase();
}
int resultvalue()
{
return result = returnvalue();
}
};
int main()
{
int CC = 0;
string Value = "";
char Otv;
cout << "Vvedite chislo: " << endl;
cin >> Value;
// do
//{
Chisla Chislo(Value);
CC = Chislo.resultbase();
int result = Chislo.resultvalue();
cout << "Chislo " << result << " v " << CC << " sisteme schhisleniya." << endl;
// cout << "Otvet veren? Y/N" << endl;
cin >> Otv;
//}while(Otv != 'Y' && Otv != 'y');
system("PAUSE");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxjdGltZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgQ2hpc2xhCnsKICAgIGludCBzaXplOwogICAgaW50IENDOwogICAgc3RyaW5nIFZhbHVlOwogICAgaW50IHJlc3VsdDsKCnB1YmxpYzoKICAgIC8v0JrQvtC90YHRgtGA0YPQutGC0L7RgCDQutC70LDRgdGB0LAKICAgIENoaXNsYShzdHJpbmcgQ2hpc2xvKQogICAgewogICAgICAgIFZhbHVlID0gQ2hpc2xvOwogICAgfQoKcHJpdmF0ZToKICAgIC8v0L/QvtC40YHQuiDRgdC40YHRgtC10LzRiyDRgdGH0LjRgdC70LXQvdC40Y8KICAgIGludCBwb2lza2Jhc2UoKQogICAgewogICAgICAgIGludCBpPTA7CiAgICAgICAgY2hhciB0ZW1wPTA7CiAgICAgICAgd2hpbGUoVmFsdWVbaV0hPSdcMCcpCiAgICAgICAgewogICAgICAgICAgICBpZih0ZW1wPFZhbHVlW2ldKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0ZW1wPVZhbHVlW2ldOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgc2l6ZSA9IGk7CiAgICAgICAgaW50IHRlbXAyPWNoYXIybnVtKHRlbXApOwogICAgICAgIHNyYW5kKHRpbWUoMCkpOwogICAgICAgIHJldHVybiByYW5kKCklMzIrKHRlbXAyKTsKICAgIH0KICAgIC8v0L/QtdGA0LXQstC+0LQg0LjQtyDQvdCw0LnQtNC10L3QvdC+0Lkg0YHQuNGB0YLQtdC80Ysg0YHRh9C40YHQu9C10L3QuNGPINCyINC00LXRgdGP0YLQuNGH0L3Rg9GOCiAgICBpbnQgcmV0dXJudmFsdWUoKQogICAgewogICAgICAgIGludCBWYWx1ZTJbc2l6ZV07CiAgICAgICAgaW50IFZhbHVlMyA9IDA7CiAgICAgICAgaW50IHNpemUyPXNpemUtMTsKICAgICAgICBmb3IoaW50IGk9MDtpPHNpemU7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgVmFsdWUyW2ldID0gY2hhcjJudW0oVmFsdWVbaV0pOwogICAgICAgIH0KICAgICAgICBpZihzaXplPjEpCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGk9MDtpPHNpemU7aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWYWx1ZTM9VmFsdWUzKyhWYWx1ZTJbaV0qcG93KENDLHNpemUyKSk7CiAgICAgICAgICAgICAgICBzaXplMi0tOwogICAgICAgICAgICB9CiAgICAgICAgfWVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFZhbHVlMz1WYWx1ZTJbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBWYWx1ZTM7CiAgICB9CiAgICAvL9Ca0L7QvdCy0LXRgNGC0LDRhtC40Y8g0YHQuNC80LLQvtC70LAg0LIg0YfQuNGB0LvQvgogICAgY2hhciBjaGFyMm51bShjaGFyIG51bSkKICAgIHsKICAgICAgICBpZihudW0gPD0gJzknKQogICAgICAgICAgICByZXR1cm4gaW50KG51bSAtICcwJyk7CiAgICAgICAgZWxzZSBpZihudW0gPj0gJ2EnKQogICAgICAgICAgICByZXR1cm4gaW50KG51bSAtICdhJysxMCk7CiAgICB9CnB1YmxpYzoKICAgIC8v0JzQtdGC0L7QtNGLINCy0YvQstC+0LTQsCDQvtGC0LLQtdGC0L7QsgogICAgaW50IHJlc3VsdGJhc2UoKQogICAgewogICAgICAgIHJldHVybiBDQyA9IHBvaXNrYmFzZSgpOwogICAgfQogICAgaW50IHJlc3VsdHZhbHVlKCkKICAgIHsKICAgICAgICByZXR1cm4gcmVzdWx0ID0gcmV0dXJudmFsdWUoKTsKICAgIH0KfTsKaW50IG1haW4oKQp7CiAgICBpbnQgQ0MgPSAwOwogICAgc3RyaW5nIFZhbHVlID0gIiI7CiAgICBjaGFyIE90djsgICAgCiAgICBjb3V0IDw8ICJWdmVkaXRlIGNoaXNsbzogIiA8PCBlbmRsOwogICAgY2luID4+IFZhbHVlOwogICAvLyBkbwogICAgLy97CiAgICBDaGlzbGEgQ2hpc2xvKFZhbHVlKTsKICAgIENDID0gQ2hpc2xvLnJlc3VsdGJhc2UoKTsKICAgIGludCByZXN1bHQgPSBDaGlzbG8ucmVzdWx0dmFsdWUoKTsKICAgIGNvdXQgPDwgIkNoaXNsbyAiIDw8IHJlc3VsdCA8PCAiIHYgIiA8PCBDQyA8PCAiIHNpc3RlbWUgc2NoaGlzbGVuaXlhLiIgPDwgZW5kbDsKICAvLyAgY291dCA8PCAiT3R2ZXQgdmVyZW4/IFkvTiIgPDwgZW5kbDsKICAgIGNpbiA+PiBPdHY7CiAgICAvL313aGlsZShPdHYgIT0gJ1knICYmIE90diAhPSAneScpOwogICAgc3lzdGVtKCJQQVVTRSIpOwogICAgcmV0dXJuIDA7Cn0K