IM提醒:QQ|MSN
IM提醒:QQ|MSN|Skype|Gtalk|Email
手机订阅
http://www.shidongliang.cn/wap
邮箱订阅
feedsky
RSS订阅
Rss首页
抓虾
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点
(原创) Java - 给定大于0的整数n,要求输出由一元、二元和五元纸币组成n元钱的所有方案


//用Java语言编写程序

//给定大于0的整数n,要求输出由一元、二元和五元纸币组成n元钱的所有方案 

题目来源:http://wenwen.soso.com/z/q135795552.htm

以下代码是 - 原创 

//Stone - 2009-6-9 

class A 
{
 public static void main(String["> args) 
 {
  run(5,"");
 }
 private static void run(int n,String value){
  if(n<=0){
   System.out.println(value);
   return;
  }
  String temp = value;
  int num["> = {1,2,5};
  for(int i=0;i<num.length;i++){
   boolean flag = true;
   /*
    * 过滤重复的方案
   for(int j=i+1;j<num.length;j++){
    if(temp.indexOf(num[j">+"")>=0){
     flag = false;
    }
   }
   */
   if(n-num[i">>=0 && flag){
    run(n-num[i">,temp+num[i">);
   }
  }
 }
}
 
---------- Java ---------- 无过滤的结果
11111
1112
1121
1211
122
2111
212
221
5




 

1121 和 1112 和 1211 和 2111 这几种情况其实可以算做事一种方案 

122  和 212  和 221          这几种情况也可以算做事一种方案
 
如果需要将这些重复的方案过滤出来,只显示一种的话,那程序输出就是下面这个样子:
 
---------- Java ---------- 过滤之后结果
11111
1112
122
5


附件(1)
Java_A.rar

网址
评论
昵称:     邮箱:    网址:
标题:
内容:
        
验证码:

       

网站首页 后台管理 渝ICP备09008377号 联系站长
Copyright © 2009 - 2010 ShiDongLiang. All Rights Reserved