From 3edf63eaf0beda7738cd73c68abeb17227332188 Mon Sep 17 00:00:00 2001 From: Cory Dean Chung Date: Wed, 16 Aug 2023 00:41:38 -0400 Subject: [PATCH] Checkpoint 1: I finished planning.md --- planning.md | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/planning.md b/planning.md index 40d428a..7025033 100644 --- a/planning.md +++ b/planning.md @@ -38,18 +38,57 @@ return digit_names[number] If the integer is under 10, then use the procedure described above. Otherwise, ... (this is where you take over!) -## Integers under 100 +We can again make a list of digit names: +``` +digit_names = [ + "zero", "one", "two", "three", "four", + "five", "six", "seven", "eight", "nine", + "ten", "eleven", "twelve", "thirteen", + "fourteen", "fifteen", "sixteen", + "seventeen", "eighteen", "nineteen" +] +return digit_names[number] +``` + +## Integers under 100 +If the integer is under 20, then use the procedure described above. +Otherwise, + +First, create a list of tens digit strings: +``` +tens_names = [ + "twenty", "thirty", "forty", "fifty", + "sixty", "seventy", "eighty", "ninety" +] +``` +Second, determine the leading digit, using integer division by 10, and the ones digit using mod 10 and look up the correct names. +return tens_names[number / 10 - 2] + digit_names[number % 10] ## Integers under 1000 +If the integer is under 100, then use the procedure described above. We'll call that procedure tens_number(). +Otherwise, +First, create a list of hundreds digit srings: +``` +hundreds_names = [ + "one hundred", "two hundred", "three hundred", + "four hundred", "five hundred", "six hundred", + "seven hundred", "eight hundred", "nine hundred" +] +``` +Second determine the hundreds digit using integer division by one hundred, the tens digit by finding the number mod 100 and applying tens_number(), and the ones digit by finding the number mod 10. +return hundreds_name[number / 100] + tens_number(number % 100) + digit_names[number % 10] ## Integers under 1000000 +If the integer is under 1000, then use the procedure described above. We'll call that procedure hundreds_name(). +return hundreds_name(number / 1000) + "thousand" + hundreds_name(number % 1000) ## Negative integers down to -1 million We won't deal with negative integers in this problem set, but how would you deal with a negative integer, using the functions above? - +If the number is positive, use the above method. +Otherwise, return "negative " + number_words(-1 * number) \ No newline at end of file