У меня есть очень большое число, хранящееся в двоичном представлении, и мне нужно вывести его в десятичном представлении:
struct BigInteger {
int *parts; // one part stores 12 bits of number, range: 0 to 0xfff
int parts_n;
};
void convertToDecString( BigInteger *in, std::string &out );
Я не могу найти подход, который бы делал это за линейное время.
Для демонстрации вы можете выбрать любой заказ на запчасти. Я упорядочил таким образом, что [0] является самым низким значением, а [n-1] является самым высоким значением.
Я боюсь, что это не может быть сделано за линейное время, потому что каждый бит чтения влияет на все цифры десятичного представления. Чем длиннее цифра, тем дольше занимает каждый новый бит чтения.
Других решений пока нет …