首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Java进行精确更改

使用Java进行精确更改
EN

Stack Overflow用户
提问于 2021-09-17 18:16:21
回答 3查看 4.5K关注 0票数 0

我在为一堂Java课做作业。下面列出了我的代码。

我有一个问题,我的美元和25美分,并正确地输出,我不知道是什么错误,25美分还是美元?例如,我从我的实验室得到了错误-

“输出不同。请参见下面的突出显示。

投入: 141

你的输出

1美元1美分1镍1便士

预期产出

1美元1/4 1一角1镍1便士“输入: 45

你的输出

2二聚体

预期产出

1季度2次

提示如下:

编写了一个程序,总变化量为便士作为整数输入,并输出变化使用最少的硬币,每行一种硬币类型。硬币类型有美元、硬币、硬币、镍币和彭尼硬币。适当地使用单数和复数的硬币名称,比如1 Penny vs. 2 Pennies。

例:如果输入是:0

产出如下:

没有变化

例:如果输入为: 45,则输出为:

四分之一

2二聚体

代码语言:javascript
运行
复制
import java.util.Scanner; 

public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      
    int cents = scnr.nextInt();

    int numDollars = (cents / 100) % 100;
    int numQuarters = (cents % 25) / 25;
    int numDimes    = (cents % 25) / 10;
    int numNickels  = ((cents % 25) % 10) / 5;
    int numPennies  = ((cents % 25) % 10) % 5;

// no change
      if (cents == 0) {
         System.out.println("No change");
      }
      
// dollars
      if (numDollars < 2 && numDollars >=1) {
      System.out.println(numDollars + " Dollar");
      }
      
      else if (numDollars >=2) {
      System.out.println(numDollars + " Dollars");
      }

// quarters
      if (numQuarters < 2 && numQuarters >=1) {
      System.out.println(numQuarters + " Quarter");
      }
      
      else if (numQuarters >=2) {
      System.out.println(numQuarters + " Quarters");
      }
      
// dimes      
      if (numDimes < 2 && numDimes >=1) {
      System.out.println(numDimes + " Dime");
      }
      
      else if (numDimes >=2) {
      System.out.println(numDimes + " Dimes");
      }
      
// nickels      
      if (numNickels < 2 && numNickels >=1) {
      System.out.println(numNickels + " Nickel");
      }
      
      else if (numNickels >=2) {
      System.out.println(numNickels + " Nickels");
      }

// pennies      
      if (numPennies < 2 && numPennies >=1) {
      System.out.println(numPennies + " Penny");
      }
      
      else if (numPennies >=2) {
      System.out.println(numPennies + " Pennies");
      }
      
      
   }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-09-17 18:21:56

你的错误在于尝试过于复杂的公式来计算硬币的数量。

只要做你在现实世界中会做的事情:抓住全部的美元,直到这不再可能。看看还剩多少。抓住硬币直到再也不可能了。看看还剩多少。诸若此类。

票数 6
EN

Stack Overflow用户

发布于 2021-11-22 23:40:02

因此,在定义int's时,我会在美元之后更改公式的逻辑,单数使用的第一行应该是==而不是>=,但我建议使用以下代码:

代码语言:javascript
运行
复制
import java.util.Scanner; 

public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      
      int cents = scnr.nextInt();

      int numDollars = (cents / 100) % 100;
      int numQuarters = (cents % 100) / 25;
      int numDimes    = (cents % 25) / 10;
      int numNickels  = (((cents % 25) % 10) / 5);
      int numPennies  = (((cents % 25) % 10) % 5);

      // no change
      if (cents == 0) {
         System.out.println("No change");
      }
      
      // dollars
      if (numDollars < 2 && numDollars == 1) {
         System.out.println(numDollars + " Dollar");
      }
      
      else if (numDollars >= 2) {
          System.out.println(numDollars + " Dollars");
      }
      
      // quarters
      if (numQuarters < 2 && numQuarters == 1) {
          System.out.println(numQuarters + " Quarter");
      }
      
      else if (numQuarters >= 2) {
          System.out.println(numQuarters + " Quarters");
      }
      
      // dimes      
      if (numDimes < 2 && numDimes == 1) {
          System.out.println(numDimes + " Dime");
      }
      
      else if (numDimes >= 2) {
          System.out.println(numDimes + " Dimes");
      }
      
      // nickels      
      if (numNickels < 2 && numNickels == 1) {
          System.out.println(numNickels + " Nickel");
      }
      
      else if (numNickels >= 2) {
          System.out.println(numNickels + " Nickels");
      }
      
      // pennies      
      if (numPennies < 2 && numPennies == 1) {
          System.out.println(numPennies + " Penny");
      }
      
      else if (numPennies >= 2) {
          System.out.println(numPennies + " Pennies");
      }
      
      
   }
}
票数 1
EN

Stack Overflow用户

发布于 2021-11-22 22:34:53

因此,在定义int's时,我会在美元之后更改公式的逻辑,单数使用的第一行应该是==而不是>=,但我建议使用以下代码:

代码语言:javascript
运行
复制
import java.util.Scanner; 

public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      
      int cents = scnr.nextInt();

      int numDollars = (cents / 100) % 100;
      int numQuarters = (cents / 25) % 25;
      int numDimes    = (cents / 10) % 10;
      int numNickels  = ((cents / 5) % 5);
      int numPennies  = ((cents / 1) % 1);

      // no change
      if (cents == 0) {
         System.out.println("No change");
      }
      
      // dollars
      if (numDollars < 2 && numDollars == 1) {
         System.out.println(numDollars + " Dollar");
      }
      
      else if (numDollars >= 2) {
          System.out.println(numDollars + " Dollars");
      }
      
      // quarters
      if (numQuarters < 2 && numQuarters == 1) {
          System.out.println(numQuarters + " Quarter");
      }
      
      else if (numQuarters >= 2) {
          System.out.println(numQuarters + " Quarters");
      }
      
      // dimes      
      if (numDimes < 2 && numDimes == 1) {
          System.out.println(numDimes + " Dime");
      }
      
      else if (numDimes >= 2) {
          System.out.println(numDimes + " Dimes");
      }
      
      // nickels      
      if (numNickels < 2 && numNickels == 1) {
          System.out.println(numNickels + " Nickel");
      }
      
      else if (numNickels >= 2) {
          System.out.println(numNickels + " Nickels");
      }
      
      // pennies      
      if (numPennies < 2 && numPennies == 1) {
          System.out.println(numPennies + " Penny");
      }
      
      else if (numPennies >= 2) {
          System.out.println(numPennies + " Pennies");
      }
      
      
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69227906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档