8000 Merge pull request #1322 from tatticoder/num-to-words · FoxMD/Algorithms@b3e1412 · GitHub
[go: up one dir, main page]

Skip to content

Commit b3e1412

Browse files
authored
Merge pull request VAR-solutions#1322 from tatticoder/num-to-words
Other algorithms/Number to words/C++/num_to_words.cpp
2 parents 5f06a18 + 8dbf72c commit b3e1412

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

Other Algorithms/num_to_words.cpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#include <iostream>
2+
#include <string>
3+
#include <vector>
4+
using namespace std;
5+
6+
string digitName(int digit);
7+
string teenName(int number);
8+
string tensName(int number);
9+
string intName(int number);
10+
11+
vector<string> ones{ "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
12+
vector<string> teens{"ten", "eleven", "twelve", "thirteen", "fourteen","fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
13+
vector<string> tens{ "", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
14+
15+
string nameForNumber(long number)
16+
{
17+
if (number < 10) {
18+
return ones[number];
19+
} else if (number < 20) {
20+
return teens[number - 10];
21+
} else if (number < 100) {
22+
return tens[number / 10] + ((number % 10 != 0) ? " " + nameForNumber(number % 10) : "");
23+
} else if (number < 1000) {
24+
return nameForNumber(number / 100) + " hundred" + ((number % 100 != 0) ? " " + nameForNumber(number % 100) : "");
25+
} else if (number < 1000000) {
26+
return nameForNumber(number / 1000) + " thousand" + ((number % 1000 != 0) ? " " + nameForNumber(number % 1000) : "");
27+
} else if (number < 1000000000) {
28+
return nameForNumber(number / 1000000) + " million" + ((number % 1000000 != 0) ? " " + nameForNumber(number % 1000000) : "");
29+
} else if (number < 1000000000000) {
30+
return nameForNumber(number / 1000000000) + " billion" + ((number % 1000000000 != 0) ? " " + nameForNumber(number % 1000000000) : "");
31+
} else
32+
return "error";
33+
}
34+
35+
36+
int main()
37+
{
38+
long input;
39+
do {
40+
cout << "Please enter a integer (Press a 0 to exit): ";
41+
cin >> input;
42+
if (input < 0) {
43+
input *= -1;
44+
cout << "\nnegative " << nameForNumber(input) << endl;
45+
} else {
46+
cout << "\n" << nameForNumber(input) << endl;
47+
}
48+
} while (input);
49+
return 0;
50+
}

0 commit comments

Comments
 (0)
0