从面值为 1,4,12,21的钱币中最多取五张,产生1~n的连续的数目,问这个n有多大(华为)
2010-09-10 17:05
295 查看
//回溯法来求解这个问题
int[] money = new int{0,1,4,12,21};
int num = 5;//五张
boolean find = false;//是否找到
int[] log = new int[num];//记录选择了哪几张,最多五张
public boolean comable(int n,int value){
//从剩下n张钱币中组合出价值value
if(n>=0&& value==0){
//还有钱币可以选择,且已经组合出了所需要的值,打印
find = true;
int sum = 0;
for(int i = 0;i<5&&log[i]!=0;i++){
sum += money[log[i]];
System.out.print(money[log[i]]+" , ");
}
System.out.println("总数为:"+sum);
}else
//&&!find用来废除结果一样只是顺序不一样的结果
for(int j = 0;j<5&&!find&&n>0;j++)
if(value-money[j])>0){
log[k++] = j;
comable(n-1,value-money[j]);
log[--k] = 0;
}
return find;
}
//如何调用
for(int i=1;comable(5,i);i++,find = false);
int[] money = new int{0,1,4,12,21};
int num = 5;//五张
boolean find = false;//是否找到
int[] log = new int[num];//记录选择了哪几张,最多五张
public boolean comable(int n,int value){
//从剩下n张钱币中组合出价值value
if(n>=0&& value==0){
//还有钱币可以选择,且已经组合出了所需要的值,打印
find = true;
int sum = 0;
for(int i = 0;i<5&&log[i]!=0;i++){
sum += money[log[i]];
System.out.print(money[log[i]]+" , ");
}
System.out.println("总数为:"+sum);
}else
//&&!find用来废除结果一样只是顺序不一样的结果
for(int j = 0;j<5&&!find&&n>0;j++)
if(value-money[j])>0){
log[k++] = j;
comable(n-1,value-money[j]);
log[--k] = 0;
}
return find;
}
//如何调用
for(int i=1;comable(5,i);i++,find = false);
相关文章推荐
- 有4种面值的邮票很多枚,这4种邮票面值分别1, 4, 12, 21,取5张 求取出这些邮票的最大连续组合值。
- 欧拉工程第27题 找出为连续数字产生最多质数的二次公式
- 华为练习题 在字符串中找出连续最长的数字串,并把这个串的长度返回
- C/C++ | 21-9 字符串中找出连续最长的数字串,并把这个串的长度返回
- Java 欧拉工程 第二十七篇【找出为连续数字产生最多质数的二次公式】
- 找出为连续数字产生最多质数的二次公式。
- 【面试题】找出字符串中连续出现次数最多的子串
- [ACM_暴力] 最多交换k个数的顺序,求a[i]的最大连续和
- 【bzoj1260】 [CQOI2007]【区间DP】涂色paint 【一个空序列,每次可以将连续(注意这个条件)的一段染成同一颜色,问最少次才能到目标状态】
- 输出个数最多的连续的字符
- c# Random快速连续产生相同随机数的解决方案
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- poj3693Maximum repetition substring【后缀数组+RMQ求重复最多连续子串】
- 用安装python模块出现error: command 'gcc' failed with exit status 1 ,实际已经安装了gcc的,还是报错,然后发觉是failed不是not found,这说明这个错误个gcc没多大关系,应该是缺少某些功能模块,执行如下操作:
- 华为2018秋招编程题1:在字符串中找出连续最长的数字串
- 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串
- (转)华为面试题算什么,这个背会了外企随便进
- 解决华为手机图片选择无效及产生的open failed: EACCES (Permission denied)错误
- 华为机试题【12】-关灯泡