Java--任意输入一个金额,给出能组合出这个值的最佳可能,要求使用的币值个数最少。

该Java程序用于将输入的金额(以分为单位)分解为不同面额的钞票。它使用Scanner类获取用户输入,然后遍历一个包含不同面额的数组,计算每种面额的钞票数量,直到剩余金额为零。如果找到匹配的面额使得金额可以完全分解,程序会通过System.exit(1)退出,表示成功。
摘要由CSDN通过智能技术生成

源代码:

import java.util.Scanner;
class  Test5
{
    public static void main(String[] args) 
    {    
               Scanner sc=new Scanner(System.in);
               System.out.println("请输入你要检验的金额(分)");
               int money=sc.nextInt();//所有的金额以分为单位
              int [] rmbs={10000,5000,2000,1000,500,100,50,20,10,5,2,1};  //  100元 50元 20元 10元

5元 1元  2角 5角   2元 5元 1分 5分 统一为最小单位分 
 
              int rest=money;//rest为剩余的钱,刚开始为所求的钱,随便选rest越变越小    
               for(int rmb:rmbs){    //增强型for循环    for(类型 变量:数组){System.out.println(变量);} 依次从大到小遍历数组元素
                   int num=rest/rmb; //num为具体某张人民币的张数
                   if(num>0){
                       rest=rest-rmb*num;   //取出就减掉,依次得出不同数值人民币的张数;
                   System.out.println("钞票面额(分)"+rmb+"张"+num+"还差多少分:"+rest);
                   if(rest==0){
                       System.exit(1);
    }
}
               }
    }
}

补充知识点:

  • //System.exit(1)是Java中的一个方法,用于退出程序。

//在这个方法中,参数1表示程序的异常退出。当程序执行到System.exit(1)时,程序会立即停止运行,并返回一个非零的状态码,表示程序的异常退出。
//通常,我们会在捕获到异常时使用System.exit(1)来停止程序的执行。[

  • //增强型for循环    for(类型 变量:数组){System.out.println(变量);}   

//首先,nums是一个数组,里面放的是int类型的数据,然后定义了一个int类型的变量num,每循环一次,就从nums数组中取出一个数据来打印。
//int :表示你要遍历的集合的类型
//nums:表示你要遍历的集合的名
//num:表示你每遍历集合中一个元素 便存储到该变量中,
//然后在foreach语句的{}使用num变量;

运行结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值