#include #include using namespace std; // converts two digit numbers to English equivalent // Owen Astrachan, 3/30/99 string digitToString (int num) // pre: 0 <= num < 10 // post: returns english equivalent, e.g., 1->one,...9->nine { if (0 == num) return "zero"; else if (1 == num) return "one"; else if (2 == num) return "two"; else if (3 == num) return "three"; else if (4 == num) return "four"; else if (5 == num) return "five"; else if (6 == num) return "six"; else if (7 == num) return "seven"; else if (8 == num) return "eight"; else if (9 == num) return "nine"; else return "?"; } string tensPrefix (int num) // pre: 10 <= num <= 99 and num % 10 == 0 // post: returns ten, twenty, thirty, forty, etc. // corresponding to num, e.g., 50->fifty { if (10 == num) return "ten"; else if (20 == num) return "twenty"; else if (30 == num) return "thirty"; else if (40 == num) return "forty"; else if (50 == num) return "fifty"; else if (60 == num) return "sixty"; else if (70 == num) return "seventy"; else if (80 == num) return "eighty"; else if (90 == num) return "ninety"; else return "?"; } string teensToString (int num) // pre: 11 <= num <= 19 // post: returns eleven, twelve, thirteen, fourteen, etc. // corresponding to num, e.g., 15 -> fifteen { if (11 == num) return "eleven"; else if (12 == num) return "twelve"; else if (13 == num) return "thirteen"; else if (14 == num) return "fourteen"; else if (15 == num) return "fifteen"; else if (16 == num) return "sixteen"; else if (17 == num) return "seventeen"; else if (18 == num) return "eighteen"; else if (19 == num) return "nineteen"; else return "?"; } string numToString (int num) // pre: 0 <= num <= 99 // post: returns english equivalent, e.g., 1->one, 13->thirteen { if (0 <= num && num < 10) return digitToString(num); else if (10 < num && num < 20) return teensToString(num); else if (num % 10 == 0) return tensPrefix(num); else { // concatenate ten's digit with one's digit return tensPrefix(10 * (num/10)) + "-" + digitToString(num % 10); } } int main () { int number; cout << "enter number between 0 and 99: "; cin >> number; if (0 <= number && number < 100) { cout << number << " = " << numToString(number) << endl; } else { cout << "invalid number entered: " << number << endl; } return 0; }