[C++] -999,999~999,999 사이의 수를 영어 텍스트로 바꾸기
#include <iostream>
using namespace std;
void printer_more(int num);
void printer_less(int num);
void print_less_hund(int num);
void print_less_ten(int num);
int main() {
int num;
cout << "수를 입력하세요 : ";
cin >> num;
//음수양수 판단
if (num<0)
{
cout << "-";
num=-num;
}
int i=0;//자릿수
int tmp;//임시변수
tmp=num;
while(tmp!=0)
{
tmp=tmp/10;
i++;
}
int num_more, num_less;//두 개로 쪼갠다.
num_more = num / 1000;//123
num_less = num % 1000;//456 one hundred twenty-three thousand four hundred fifty-six
if (i>3)
{
printer_more(num_more);
printer_less(num_less);
}
else
{
printer_less(num_less);
}
return 0;
}
void printer_more(int num){
if (num < 20)//20보다 작을 때
{
if (num == 1) cout << " one";
if (num == 2) cout << " two";
if (num == 3) cout << " three";
if (num == 4) cout << " four";
if (num == 5) cout << " five";
if (num == 6) cout << " six";
if (num == 7) cout << " seven";
if (num == 8) cout << " eight";
if (num == 9) cout << " nine";
if (num == 10) cout << " ten";
if (num == 11) cout << " eleven";
if (num == 12) cout << " twelve";
if (num == 13) cout << " thirteen";
if (num == 14) cout << " fourteen";
if (num == 15) cout << " fifteen";
if (num == 16) cout << " sixteen";
if (num == 17) cout << " seventeen";
if (num == 18) cout << " eighteen";
if (num == 19) cout << " nineteen";
}
else if (num <100)
{
print_less_hund(num);
print_less_ten(num);
}
else
{
if (num == 100) cout << " one hundred";
else
{
print_less_ten(num/100);
cout << " hundred";
print_less_hund(num%100);
print_less_ten(num%10);
}
}
cout << " thousand";
}
void printer_less(int num){
if (num < 20)//20보다 작을 때
{
if (num == 1) cout << " one";
if (num == 2) cout << " two";
if (num == 3) cout << " three";
if (num == 4) cout << " four";
if (num == 5) cout << " five";
if (num == 6) cout << " six";
if (num == 7) cout << " seven";
if (num == 8) cout << " eight";
if (num == 9) cout << " nine";
if (num == 10) cout << " ten";
if (num == 11) cout << " eleven";
if (num == 12) cout << " twelve";
if (num == 13) cout << " thirteen";
if (num == 14) cout << " fourteen";
if (num == 15) cout << " fifteen";
if (num == 16) cout << " sixteen";
if (num == 17) cout << " seventeen";
if (num == 18) cout << " eighteen";
if (num == 19) cout << " nineteen";
}
else if (num <100)
{
print_less_hund(num);
print_less_ten(num);
}
else
{
if (num == 100) cout << " one hundred";
else
{
print_less_ten(num/100);
cout << " hundred";
print_less_hund(num%100);
print_less_ten(num%10);
}
}
}
void print_less_hund(int num){
if (num > 19 && num < 30) cout << " twenty";
if (num > 29 && num < 40) cout << " thirty";
if (num > 39 && num < 50) cout << " fourty";
if (num > 49 && num < 60) cout << " fifty";
if (num > 59 && num < 70) cout << " sixty";
if (num > 69 && num < 80) cout << " seventy";
if (num > 79 && num < 90) cout << " eighty";
if (num > 89 && num < 100) cout << " ninety";
}
void print_less_ten(int num){
if (num == 1) cout << " one";
if (num == 2) cout << " two";
if (num == 3) cout << " three";
if (num == 4) cout << " four";
if (num == 5) cout << " five";
if (num == 6) cout << " six";
if (num == 7) cout << " seven";
if (num == 8) cout << " eight";
if (num == 9) cout << " nine";
}