프로그래밍 공부/Jumping into C++

[C++] -999,999~999,999 사이의 수를 영어 텍스트로 바꾸기

Rocketbabydolls 2020. 4. 25. 15:12

#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";
}