#include const string smalls[] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" }; const string tens[] = { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" }; void say(int n) // This function works perfectly for all positive ints { if (n < 20) print(smalls[n]); else if (n < 100) { print(tens[n/10]); if (n % 10 != 0) { print("-"); print(smalls[n%10]); } } else if (n < 1000) { const int hundreds = n / 100, remainder = n % 100; say(hundreds); print(" hundred "); if (remainder != 0) { print("and "); say(remainder); } } else if (n < 1000000) { const int thousands = n / 1000, remainder = n % 1000; say(thousands); print(" thousand "); if (remainder != 0) say(remainder); } else if (n < 1000000000) { const int millions = n / 1000000, remainder = n % 1000000; say(millions); print(" million "); if (remainder != 0) say(remainder); } else { const int billions = n / 1000000000, remainder = n % 1000000000; say(billions); print(" billion "); if (remainder != 0) say(remainder); } } void many_tests() { print("enter an int: "); const int n = read_int(); say(n); new_line(); many_tests(); } void main() { many_tests(); }