Вы находитесь на странице: 1из 3

#include <iostream>

#include <cstdio>
#include <cstring>
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <iomanip>
#include <algorithm>
using namespace std;
const string k1[] = {"unu", "doi", "trei", "patru", "cinci", "sase", "sapte",
"opt", "noua"};
int nrc(int n)
{
int k=0;
while(n)
{
k++;
n/=10;
}
return k;
}
void scrie(int n)
{
int lungime=nrc(n);
switch(lungime)
{
case 9:
scrie(n/1000000);
cout<<" de milioane";
if(n%1000000)
scrie(n%1000000);
break;
case 8:
scrie(n/1000000);
if(n/1000000 > 19)
cout<<" de milioane";
else
cout<<" milioane";
if(n%1000000)
scrie(n%1000000);
break;
case 7:
if(n/1000000 == 1)
cout<<"un milion";
else if(n/1000000 == 2)
cout<<"doua milioane";
else
{
scrie(n/1000000);
cout<<" milioane";
}
if(n%1000000)
scrie(n%1000000);
break;
case 6:
scrie(n/1000);
cout<<" de mii";
if(n%1000)
scrie(n%1000);
break;
case 5:
scrie(n/1000);
if(n/1000 > 19)
cout<<" de mii";
else
cout<<" mii";
if(n%1000)
scrie(n%1000);
break;
case 4:
if(n/1000 == 1)
cout<<"o mie";
else if(n/1000 == 2)
cout<<"doua mii";
else
{
scrie(n/1000);
cout<<" mii";
}
if(n%1000)
{
cout<<" ";
scrie(n%1000);
}
break;
case 3:
if((n/100) == 1)
cout<<" o suta";
else if((n/100) == 2)
cout<<" doua sute";
else
{
cout<<" ";
scrie(n/100);
cout<<" sute";
}
if(n % 100)
{
cout<<" ";
scrie(n%100);
}
break;
case 2:
if(n == 10)
cout<<"zece";
else if(n == 11)
cout<<"unsprezece";
else if(n/10 == 1)
{
scrie(n%10);
cout<<"sprezece";
}
else if(n == 20)
cout<<"douazeci";
else if(n/10 == 2)
{
cout<<"douazeci si";
scrie(n%10);
}
else
{
scrie(n/10);
cout<<"zeci";
if(n%10)
{
cout<<" si ";
scrie(n%10);
}
}
break;
case 1:
cout<<k1[n-1];
break;
}
}
int main()
{
int n;
cin>>n;
scrie(n);
return 0;
}

Вам также может понравиться