#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); // say(n) will correctly say any int void say0to99(int n) { if (n < 20) print(smalls[n]); else if (n < 100) { print(tens[n/10]); if (n % 10 != 0) { print("-"); print(smalls[n%10]); } } } void say100to999(int n) { const int hundreds = n / 100, remainder = n % 100; say(hundreds); print(" hundred "); if (remainder != 0) { print("and "); say(remainder); } } void say1000to999999(int n) { const int thousands = n / 1000, remainder = n % 1000; say(thousands); print(" thousand "); if (remainder != 0) say(remainder); } void say1000000to999999999(int n) { const int millions = n / 1000000, remainder = n % 1000000; say(millions); print(" million "); if (remainder != 0) say(remainder); } void saybillions(int n) { const int billions = n / 1000000000, remainder = n % 1000000000; say(billions); print(" billion "); if (remainder != 0) say(remainder); } void say(int n) { if (n < 0) { print("minus "); say(- n); } else if (n < 100) say0to99(n); else if (n < 1000) say100to999(n); else if (n < 1000000) say1000to999999(n); else if (n < 1000000000) say1000000to999999999(n); else saybillions(n); } void many_tests() { print("enter an int: "); const int n = read_int(); say(n); new_line(); many_tests(); } void main() { many_tests(); }