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.

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

} 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

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2014 Nancy France September 15 19 2014 Proceedings Part 2 Lnai 8725

Authors: Toon Calders ,Floriana Esposito ,Eyke Hullermeier ,Rosa Meo

2014th Edition

3662448505, 978-3662448502

More Books

Students also viewed these Databases questions