货币组合问题
来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-02 05:43 点击:次
package lianxi;
/**
*
*
* 从键盘上输入意,见物品的价格(范围在0.10-5.00元),
* 假设用户支付了一张5元纸币,请列出一种找零的方案,
* 是的纸币及硬币的个数最少。入3.68远,应为两元一张,
* 一元一张,五角一个,一角一个,五分一个,二分一个,一份一个。
完整的程序。谢了。 最佳答案
从键盘上输入一件物品的价格(范围在0.10-5.00元),
假设用户支付了一张5元纸币,请列出一种找零的方案,
并且纸币及硬币的个数最少。如3.68元,
应为两元一张,一元一张,五角一个,一角一个,五分一个,二分一个,一分一个。
*
* */
public class Money {
/*
*
* 首先应该知道人冥币都有哪几个
* 1,2,5因为这几个是最基本的钱可以组成,3,6,7,8,9,4
* 由于钱是按单位不同来划分为:
* 按货币单位:分,角,元
* 安计量单位划分为规定以分为基本单元
* 1------分
* 10*分=角
* 10*角=元
*
* */
public static int [] moneyCount=new int[3];//存放钱的组合
public static int getMoney(int money){
if(money>=100){//元
int [] arrayMoney=getMoneyZhuhe(money/100);
println(arrayMoney,"元");
return getMoney(money%100);
}
else if(money>=10){//角
int [] arrayMoney=getMoneyZhuhe(money/10);
println(arrayMoney,"角");
return getMoney(money%10);
}
else{//分
int [] arrayMoney=getMoneyZhuhe(money);
println(arrayMoney,"分");
return 0;
}
}
public static void println(int[]arrayMoney,String moneyName){
System.out.println("------------"+moneyName+"----------");
if(arrayMoney[0]!=0){
System.out.print("五"+moneyName+" "+ arrayMoney[0]+" 个"+'\r');
}
if(arrayMoney[1]!=0){
System.out.print("二"+moneyName+" "+ arrayMoney[1]+" 个"+'\r');
}
if(arrayMoney[2]!=0){
System.out.print("一"+moneyName+" "+ arrayMoney[2]+" 个"+'\r');
}
System.out.println();
}
public static int[] getMoneyZhuhe(int moneyItem){//钱单元,部分钱的面值计量数
moneyCount[0]=moneyItem/5;
moneyItem%=5;
moneyCount[1]=moneyItem/2;
moneyItem%=2;
moneyCount[2]=moneyItem;
return moneyCount;
}
public static void main(String[]args){
getMoney(368);
}
}
/**
*
*
* 从键盘上输入意,见物品的价格(范围在0.10-5.00元),
* 假设用户支付了一张5元纸币,请列出一种找零的方案,
* 是的纸币及硬币的个数最少。入3.68远,应为两元一张,
* 一元一张,五角一个,一角一个,五分一个,二分一个,一份一个。
完整的程序。谢了。 最佳答案
从键盘上输入一件物品的价格(范围在0.10-5.00元),
假设用户支付了一张5元纸币,请列出一种找零的方案,
并且纸币及硬币的个数最少。如3.68元,
应为两元一张,一元一张,五角一个,一角一个,五分一个,二分一个,一分一个。
*
* */
public class Money {
/*
*
* 首先应该知道人冥币都有哪几个
* 1,2,5因为这几个是最基本的钱可以组成,3,6,7,8,9,4
* 由于钱是按单位不同来划分为:
* 按货币单位:分,角,元
* 安计量单位划分为规定以分为基本单元
* 1------分
* 10*分=角
* 10*角=元
*
* */
public static int [] moneyCount=new int[3];//存放钱的组合
public static int getMoney(int money){
if(money>=100){//元
int [] arrayMoney=getMoneyZhuhe(money/100);
println(arrayMoney,"元");
return getMoney(money%100);
}
else if(money>=10){//角
int [] arrayMoney=getMoneyZhuhe(money/10);
println(arrayMoney,"角");
return getMoney(money%10);
}
else{//分
int [] arrayMoney=getMoneyZhuhe(money);
println(arrayMoney,"分");
return 0;
}
}
public static void println(int[]arrayMoney,String moneyName){
System.out.println("------------"+moneyName+"----------");
if(arrayMoney[0]!=0){
System.out.print("五"+moneyName+" "+ arrayMoney[0]+" 个"+'\r');
}
if(arrayMoney[1]!=0){
System.out.print("二"+moneyName+" "+ arrayMoney[1]+" 个"+'\r');
}
if(arrayMoney[2]!=0){
System.out.print("一"+moneyName+" "+ arrayMoney[2]+" 个"+'\r');
}
System.out.println();
}
public static int[] getMoneyZhuhe(int moneyItem){//钱单元,部分钱的面值计量数
moneyCount[0]=moneyItem/5;
moneyItem%=5;
moneyCount[1]=moneyItem/2;
moneyItem%=2;
moneyCount[2]=moneyItem;
return moneyCount;
}
public static void main(String[]args){
getMoney(368);
}
}
本文出自 “技术人生” 博客,谢绝转载!
相关新闻>>
- 发表评论
-
- 最新评论 更多>>