#include<iostream>
using namespace std;
void expand(int);
int main()
{
int num;
cout<<"Enter a number : ";
cin>>num;
expand(num);
}
void expand(int value)
{
const char * const ones[20] = {"zero", "one", "two", "three","four","five","six","seven",
"eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen",
"eighteen","nineteen"};
const char * const tens[10] = {"", "ten", "twenty", "thirty","forty","fifty","sixty","seventy",
"eighty","ninety"};
if(value<0)
{
cout<<"minus ";
expand(-value);
}
else if(value>=1000)
{
expand(value/1000);
cout<<" thousand";
if(value % 1000)
{
if(value % 1000 < 100)
{
cout << " and";
}
cout << " " ;
expand(value % 1000);
}
}
else if(value >= 100)
{
expand(value / 100);
cout<<" hundred";
if(value % 100)
{
cout << " and ";
expand (value % 100);
}
}
else if(value >= 20)
{
cout << tens[value / 10];
if(value % 10)
{
cout << " ";
expand(value % 10);
}
}
else
{
cout<<ones[value];
}
return;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgZXhwYW5kKGludCk7CmludCBtYWluKCkKewogICAgaW50IG51bTsKICAgIGNvdXQ8PCJFbnRlciBhIG51bWJlciA6ICI7CiAgICBjaW4+Pm51bTsKICAgIGV4cGFuZChudW0pOwp9CnZvaWQgZXhwYW5kKGludCB2YWx1ZSkKewogICAgY29uc3QgY2hhciAqIGNvbnN0IG9uZXNbMjBdID0geyJ6ZXJvIiwgIm9uZSIsICJ0d28iLCAidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwKICAgICJlaWdodCIsIm5pbmUiLCJ0ZW4iLCJlbGV2ZW4iLCJ0d2VsdmUiLCJ0aGlydGVlbiIsImZvdXJ0ZWVuIiwiZmlmdGVlbiIsInNpeHRlZW4iLCJzZXZlbnRlZW4iLAogICAgImVpZ2h0ZWVuIiwibmluZXRlZW4ifTsKICAgIGNvbnN0IGNoYXIgKiBjb25zdCB0ZW5zWzEwXSA9IHsiIiwgInRlbiIsICJ0d2VudHkiLCAidGhpcnR5IiwiZm9ydHkiLCJmaWZ0eSIsInNpeHR5Iiwic2V2ZW50eSIsCiAgICAiZWlnaHR5IiwibmluZXR5In07CgogICAgaWYodmFsdWU8MCkKICAgIHsKICAgICAgICBjb3V0PDwibWludXMgIjsKICAgICAgICBleHBhbmQoLXZhbHVlKTsKICAgIH0KICAgIGVsc2UgaWYodmFsdWU+PTEwMDApCiAgICB7CiAgICAgICAgZXhwYW5kKHZhbHVlLzEwMDApOwogICAgICAgIGNvdXQ8PCIgdGhvdXNhbmQiOwogICAgICAgIGlmKHZhbHVlICUgMTAwMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKHZhbHVlICUgMTAwMCA8IDEwMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY291dCA8PCAiIGFuZCI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291dCA8PCAiICIgOwogICAgICAgICAgICBleHBhbmQodmFsdWUgJSAxMDAwKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIGlmKHZhbHVlID49IDEwMCkKICAgIHsKICAgICAgICBleHBhbmQodmFsdWUgLyAxMDApOwogICAgICAgIGNvdXQ8PCIgaHVuZHJlZCI7CiAgICAgICAgaWYodmFsdWUgJSAxMDApCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICIgYW5kICI7CiAgICAgICAgICAgIGV4cGFuZCAodmFsdWUgJSAxMDApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYodmFsdWUgPj0gMjApCiAgICB7CiAgICAgICAgY291dCA8PCB0ZW5zW3ZhbHVlIC8gMTBdOwogICAgICAgIGlmKHZhbHVlICUgMTApCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICIgIjsKICAgICAgICAgICAgZXhwYW5kKHZhbHVlICUgMTApOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBjb3V0PDxvbmVzW3ZhbHVlXTsKICAgIH0KICAgIHJldHVybjsKfQ==