A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

假设某小卖铺钱柜里仅有1元和5角的硬币各若干,这时来了一个顾客想兑换一张20元的钞票。(6分)
             请编写程序,输出所有可能的兑换组合
            要求:(1)每种钞票/硬币的张数/个数不为0;
               (2)每种组合输出占一行。如下所示为输出中的一行:
                        1元的有1张,5角的硬币有38个
         打印格式:
                1元的有1张,5角的硬币有38个
                1元的有2张,5角的硬币有36个
                1元的有3张,5角的硬币有34个

8 个回复

倒序浏览
这道题比较简单。用到Java基础语言中的if语句和for语句。
分析:看到了打印格式。心里就已经应该明白了肯定是要用到for语句的。
其次就是题目硬性规定了 必须每种硬币都要有。不可以20个1元硬币或者40个5毛硬币这样的去换。所以就规定了硬性条件。就是 1元硬币!=0 && 5毛硬币!=0  代码要建立在这个基础上。
所以就是if(x!=0 && y!=0)   也告诉了我们要定义两个变量 x y分别代表两种币种。1元的基础上是1。5毛的基础是2。因为如果5毛的规定初始变量是1的话。那么就换多了。
然后进行循环。
代码如下:
  1. public class Test01 {
  2.         public static void main(String[] args) {
  3.                 //定义1元硬币的数量和5毛硬币的数量
  4.                 int x = 1,y = 2;
  5.         if(x!=0 && y!=0){
  6.                                 for (int m = 1; m < 20; m++) {
  7.                                         y = (20 - m) * 2;
  8.                                         System.out.println("1元有"+m+"个,5毛的硬币有"+y+"个。");                                       
  9.                         }
  10.                 }
  11.         }
  12. }
复制代码
回复 使用道具 举报 1 0
学习了!谢谢
回复 使用道具 举报
谢谢分享 ,看了一下下,什么时候的题目
回复 使用道具 举报
    for (int i = 1; i < 20; i++) {
                        for (int j = 1; j < 40; j++) {
                                if ((i + 0.5 * j) == 20) {
                                        System.out.println("1元的有" + i + "张,5角的硬币有" + j + "个");
                                }
                        }
                }

两个for循环加if判断就好啦
回复 使用道具 举报
for (int i = 1; i < 20; i++) {     //这里就已经定义了不能一元不等于0,和五毛不能等与0
        int j=(20-i)*2;
        System.out.println("1元有"+i+"个,5毛的硬币有"+j+"个");
        }
回复 使用道具 举报
虽然还不到考试的时候,但是收藏了解总是没错的.
回复 使用道具 举报
感谢分享,学习了!
回复 使用道具 举报
int b;
                for(int a=1;a<20;a++)
                {
                        b=(20-a)*2;
                        System.out.println("1元的有"+a+"张,5角的硬币有"+b+"个");
                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马