/**
* 最连续组合
* @author
*
*/
public class Port {
static int num = 5,M = 5;
static int k;
static boolean find;
static int Logo[] = new int[num];
static int Stamp[] = {0,1,4,12,21};
//在剩余张数n中组合出面值和value
public static boolean Comable(int n, int value) {
if (n >= 0 && value == 0) {
find = true;
int sum = 0;
for (int i = 0; i < num && Logo[i] != 0; i++) {
sum = sum + Stamp[Logo[i]];
System.out.print(Stamp[Logo[i]] + ",");
}
System.out.println("总数为:" + sum);
} else
for (int i = 1; i < M && !find && n > 0; i++)
if (value - Stamp[i] >= 0) {
Logo[k++] = i;
Comable(n - 1, value - Stamp[i]);
Logo[--k] = 0;
}
return find;
}
public static void main(String[] args) {
for(int i = 1;Comable(num,i);i++,find = false);
}
}
最大的连续组合值(华为校园招聘笔试题)
最新推荐文章于 2024-06-29 00:30:00 发布