// Book Name: Majmooe Kamele Proje haie barname nevisi dar C & C++ & C#
// www.MSJavan.tk
// www.Javan.tk
// www.Farsibooks.ir
#include <iostream.h>
#include <conio.h>
int enter();
int numbers(long int);
void convert(int);
void process(int);
int check(int i);
const d=5;
int digit[d],count;
char str1[10][10]={" ","one","two","three","four","five","six","seven","eight","nine"};
char str2[10][10]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
char str3[10][10]={" ","ten","twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninty"};
char str4[d][10]={"","thousand","million","milliard","trillion"};
int first[100];
void main()
{
clrscr();
int num;
cout<<" Convert Digits to Text (English Version) \n\n";
cout<< "enter number with less than "<< (d*3) <<" digits: ";
num=enter();
process(num);
cout << "\n\n there is "<<num <<" digits entered \n\n - - - - - - - - - - - - - - - - - - -\n \n";
cout << (num>d*3?"~... too big number !!":"");
if(num<=d*3)
for (int i=count-1;i>=0;i--)
{
if(digit[i]>0)
{
convert(digit[i]);
cout <<str4[i];
cout <<(check(i)?" & ":" ,");
}
}
getch();
}
void convert(int n)
{
int a;
a=n/100;
if(a>0)
cout<< str1[a] << " hundred" << (a>1?"s ":" ") << (n%100>0?"and ":"");
n%=100;
if (n>=20)
cout<< str3[n/10] << ' ' << str1[n%10] << ' ';
else if (n<20 && n>=10)
cout<< str2[n%10] << ' ' ;
else if (n<10)
cout << str1[n] << ' ';
}
int enter()
{
int i;
i=getch();
int num=0;
while (i!=13)
{
if (i > 47 && i<58 || i==8)
{
if (i==8 && num>0)
{
num--;
first[num]=0;
putch(i);
putch(' ');
}
else
{
first[num]=i-'0';
num++;
}
putch(i);
}
i=getch();
}
return (num);
}
void process(int num)
{
int k=1,m=0,i;
for(i=num-1;i>=0;i--)
{
m=first[i]*k+m;
k*=10;
if (k>100)
{
digit[count]=m;
m=0;k=1;;
count++;
}
}
if(m>0)
{
digit[count]=m;
count++;
}
}
int check(int i)
{
int k=0;
for (int j=i-1;j>=0;j--)
if (digit[j]>0)
k=1;
return k;
}