#include
#include
using namespace std;
class Numeral {
public:
static string number_to_string(const unsigned number) {
if (number < twenty) return a[number];
if (number < hundred) {
const auto d = number / ten;
auto str = b[d];
const auto x = number % ten;
if (zero == x) return str;
return str += ' ' + a[x];
}
if (number >= hundred) {
const auto h = number / hundred;
auto str = c[h];
const auto y = number % hundred;
if (zero == y) return str;
if (y < twenty) return str += ' ' + a[y];
const auto d = number / ten % ten;
str += ' ' + b[d];
const auto x = number % ten;
if (zero == x) return str;
return str += ' ' + a[x];
}
}
private:
inline static const auto zero = 0U;
inline static const auto ten = 10U;
inline static const auto twenty = 20U;
inline static const auto hundred = 100U;
inline static const string a[] = {
"ноль", "один", "два", "три", "четыре", "пять",
"шесть", "семь", "восемь", "девять", "десять",
"одиннадцать", "двенадцать", "тринадцать",
"четырнадцать", "пятнадцать","шестнадцать",
"семнадцать", "восемнадцать", "девятнадцать"
};
inline static const string b[] = {
"ноль", "десять", "двадцать", "тридцать",
"сорок", "пятьдесят", "шестьдесят",
"семьдесят", "восемьдесят", "девяносто"
};
inline static const string c[] = {
"ноль", "сто", "двести", "триста",
"четыреста", "пятьсот", "шестьсот",
"семьсот", "восемьсот", "девятьсот"
};
};
int main() {
system("chcp 1251 > nul");
const auto limit = 1000U;
auto number = 0U;
while (number < limit) {
cout > number;
cout