Мой фаворит - рекурсивная версия (в основном на C) для перестановки цифр в правильном порядке.
void u2str(string& s, unsigned value){
unsigned d = value % 10;
value /= 10;
if (value > 0 )
u2str(s,value);
s.push_back('0'+d);
}
Для 0 вы получаете «0», но во всех других случаях вы не используетеведущие нули.Как показано, предполагается, что строка более эффективна при добавлении, чем при вставке.Однако, если вставить, то вам не нужен рекурсивный трюк (например, ответ Кейта).