java最少人民币张数凑成钱数
需求分析: 编程序,输入正整数m,它代表一个人民币钱数(元数)。求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。
2.2概要设计:
本程设计思路:将用户所输入的钱币数分别出去100,50,20,10,5,2,1不同的钱币值,用数组记录下个种币值所需要的数目。然后输出值不是0的数值的值。
程序流程图(如左图):
2.3 详细设计与编码:
见上传程序。
2.4 调试分析:
总的来说程序并不是太难,刚开始的时候没有用try和catch的组合来检错,用的是if语句,相当的繁琐,而且时常会有的地方遗漏。改成try和catch的组合来检错就简单了许多。
程序执行的结果:
错误检测:
2.5 用户使用说明:
用户根据程序的提示输入一个钱币值,由程序计算求出所需的钱币数目.
2.6 设计心得:
这个程序的算法不算太难,主要是用到了数组,虽然程序还有些不成熟,感觉还是可以的。用java写的,觉得检错的时候明显会比其他的语言写的检错来得简单些,当然要知道相应的命令才行,我也是查了不少书才知道的。
/**编程序,输入正整数m,它代表一个人民币钱数(元数)。
求取这样一个方案,使用最少张数的人民币纸币,凑成上述的钱数m,并输出求取结果。
注意,现在共有7种元以上面值的人民币纸币,分别为:100,50,20,10,5,2,1。 */
import javax.swing.JOptionPane;
public class liu{
public static void main(String args[]){
try{
String sum="";
String br=JOptionPane.showInputDialog("输入m的值:");
原文请找腾讯752018766优,文-论'文.网
http://www.youerw.com m=m%base[i]; //所剩“零头”仍放m 中
}
int s=0; //纸币总张数s
for(int i=0; i<7; i++) //结果至多有7 种面值
if(count[i]!=0) { //当需要某面值的纸币时
s+=count[i]; //增加纸币总张数s
sum+=count[i]+"张("+base[i]+") "; //输出结果
}
JOptionPane.showMessageDialog(null,n+"元\n"+"共需要纸币的张数为:"+s+"\n"+sum);
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"出错!!输入数应该为数字");
}
catch(NegativeArraySizeException e){
JOptionPane.showMessageDialog(null,"出错!!输入数应该为正数");1837
java最少人民币张数凑成钱数下载如图片无法显示或论文不完整,请联系qq752018766