3.7(金融应用:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位,用单词的单数形式显示一个单位,例如1dollar and 1 penny(1美元和1美分);用单词的复数形式显示多于一个单位的值,例如2dollars and 3 pennies(2美元和3美分)。 3.7(Financial application: monetary units) Modify Listing 2.10, ComputeChange.java, to display the nonzero denominations only, using singular words for single units such as 1 dollar and 1 penny, and plural words for more than one unit such as 2 dollars and 3 pennies.
参考代码:
package chapter03;import java.util.Scanner;publicclassCode_07{
publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);// Receive the amountSystem.out.print("Enter an amount in double, for example 11.56: ");double amount = input.nextDouble();int remainingAmount =(int)(amount *100);// Find the number of one dollarsint numberOfOneDollars = remainingAmount /100;remainingAmount = remainingAmount %100;// Find the number of quarters in the remaining amountint numberOfQuarters = remainingAmount /25;remainingAmount = remainingAmount %25;// Find the number of dimes in the remaining amountint numberOfDimes = remainingAmount /10;remainingAmount = remainingAmount %10;// Find the number of nickels in the remaining amountint numberOfNickels = remainingAmount /5;remainingAmount = remainingAmount %5;// Find the number of pennies in the remaining amountint numberOfPennies = remainingAmount;// Display resultsSystem.out.println("Your amount "+ amount +" consists of");if(numberOfOneDollars >0){
if(numberOfOneDollars ==1)System.out.print(numberOfOneDollars +" dollar");elseSystem.out.print(numberOfOneDollars +" dollars");}if(numberOfQuarters >0){
if(numberOfQuarters ==1)System.out.print(" and "+ numberOfQuarters +" quarter");elseSystem.out.print(" and "+ numberOfQuarters +" quarters");}if(numberOfDimes >0){
if(numberOfDimes ==1)System.out.print(" and "+ numberOfDimes +" dime");elseSystem.out.print(" and "+ numberOfDimes +" dimes");}if(numberOfNickels >0){
if(numberOfNickels ==1)System.out.print(" and "+ numberOfNickels +" dime");elseSystem.out.print(" and "+ numberOfNickels +" dimes");}if(numberOfPennies >0){
if(numberOfPennies ==1)System.out.print(" and "+ numberOfPennies +" penny");elseSystem.out.print(" and "+ numberOfPennies +" pennies");}input.close();}}
结果显示:
Enter an amount in double,for example 11.56:11.56
Your amount 11.56 consists of
11 dollars and 2 quarters and 1 dime and 1 penny
Process finished with exit code 0