Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

5.13.3: Using a recursive call, extend the range of the intName method. The intName method in the Problem Solving: Stepwise Refinement section accepted arguments <

5.13.3: Using a recursive call, extend the range of the intName method.

The intName method in the "Problem Solving: Stepwise Refinement" section accepted arguments < 1,000. Using a recursive call, extend its range to 999,999. For example an input of 12,345 should return " twelve thousand three hundred forty five". Note that some number names may have extra spaces at the beginning or end.

Note the two bolded items, please and thank you

import java.util.Scanner;

public class IntegerName { /** Turns a number into its English name. @param number a positive integer < 999,999 @return the name of the number (e.g. "two hundred seventy four") */ public static String intName(int number) { int part = number; // The part that still needs to be converted String name = ""; // The name of the number

if (part >= 1000) { // Recursively call intName /* Your code goes here */ } if (part >= 100) { name = digitName(part / 100) + " hundred"; part = part % 100; }

if (part >= 20) { name = name + " " + tensName(part); part = part % 10; } else if (part >= 10) { name = name + " " + teenName(part); part = 0; }

if (part > 0) { name = name + " " + digitName(part); }

return name; }

/** Turns a digit into its English name. @param digit an integer between 1 and 9 @return the name of digit ("one" ... "nine") */ public static String digitName(int digit) { if (digit == 1) { return "one"; } if (digit == 2) { return "two"; } if (digit == 3) { return "three"; } if (digit == 4) { return "four"; } if (digit == 5) { return "five"; } if (digit == 6) { return "six"; } if (digit == 7) { return "seven"; } if (digit == 8) { return "eight"; } if (digit == 9) { return "nine"; } return ""; }

/** Turns a number between 10 and 19 into its English name. @param number an integer between 10 and 19 @return the name of the given number ("ten" ... "nineteen") */ public static String teenName(int number) { if (number == 10) { return "ten"; } if (number == 11) { return "eleven"; } if (number == 12) { return "twelve"; } if (number == 13) { return "thirteen"; } if (number == 14) { return "fourteen"; } if (number == 15) { return "fifteen"; } if (number == 16) { return "sixteen"; } if (number == 17) { return "seventeen"; } if (number == 18) { return "eighteen"; } if (number == 19) { return "nineteen"; } return ""; }

/** Gives the name of the tens part of a number between 20 and 99. @param number an integer between 20 and 99 @return the name of the tens part of the number ("twenty" ... "ninety") */ public static String tensName(int number) { if (number >= 90) { return "ninety"; } if (number >= 80) { return "eighty"; } if (number >= 70) { return "seventy"; } if (number >= 60) { return "sixty"; } if (number >= 50) { return "fifty"; } if (number >= 40) { return "forty"; } if (number >= 30) { return "thirty"; } if (number >= 20) { return "twenty"; } return ""; }

public static void main(String[] args) { Scanner in = new Scanner(System.in); int number = in.nextInt(); System.out.println(intName(number)); } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Statistical And Scientific Database Management International Working Conference Ssdbm Rome Italy June 21 23 1988 Proceedings Lncs 339

Authors: Maurizio Rafanelli ,John C. Klensin ,Per Svensson

1st Edition

354050575X, 978-3540505754

More Books

Students also viewed these Databases questions