#include using namespace std; #include "prompt.h" // prelude to recursion: print English form of each digit // in an integer: 123 -> "one two three" void PrintDigit(int num) // precondition: 0 <= num < 10 // postcondition: prints english equivalent, e.g., 1->one,...9->nine { if (0 == num) cout << "zero"; else if (1 == num) cout << "one"; else if (2 == num) cout << "two"; else if (3 == num) cout << "three"; else if (4 == num) cout << "four"; else if (5 == num) cout << "five"; else if (6 == num) cout << "six"; else if (7 == num) cout << "seven"; else if (8 == num) cout << "eight"; else if (9 == num) cout << "nine"; else cout << "?"; } void PrintOne(long number) // precondition: 0 <= number < 10 // postcondition: prints English equivalent of number { if (0 <= number && number < 10) { PrintDigit(number); } } void PrintTwo(long int number) // precondition: 10 <= number < 100 // postcondition: prints English equivalent of number { if (10 <= number && number < 100) { PrintOne(number / 10); cout << " "; PrintDigit(number % 10); } } void PrintThree(long int number) // precondition: 100 <= number < 1000 // postcondition: prints English equivalent of number { if (100 <= number && number < 1000) { PrintTwo(number / 10); cout << " "; PrintDigit(number % 10); } } void PrintFour(long int number) // precondition: 1000 <= number < 10,000 // postcondition: prints English equivalent of number { if (1000 <= number && number < 10000) { PrintThree(number / 10); cout << " "; PrintDigit(number % 10); } } int main() { int number = PromptRange("enter an integer",1000,9999); PrintFour(number); cout << endl; return 0; }