package zhenTi_2016B;
public class Test5
{
//a数组代表第i个国家可以派出的最多人数
//变量k 指代国家索引
//变量n 指代当前还需要选几个人
public static void f(int[] a, int k, int n, String s)//从第k个国家开始选,总共要选择n个人
{
if(k==a.length){ //完成最后一个国家的选人后,如果正好已经选了n个人则输出这种情况
if(n==0)
System.out.println(s);
return;
}
String s2 = s;
for(int i=0; i<=a[k]; i++){
//假定在当前国家k选了i个人,再从第k+1国家开始选,此时总共还需要选择n-i个人
f(a, k + 1, n - i, s2);
s2 += (char)(k+'A'); //每在k国家选一个人就要将此人加到目标字符串中去
}
}
public static void main(String[] args)
{
int[] a = {4,2,2,1,1,3};
f(a,0,5,"");
}
}
public class Test5
{
//a数组代表第i个国家可以派出的最多人数
//变量k 指代国家索引
//变量n 指代当前还需要选几个人
public static void f(int[] a, int k, int n, String s)//从第k个国家开始选,总共要选择n个人
{
if(k==a.length){ //完成最后一个国家的选人后,如果正好已经选了n个人则输出这种情况
if(n==0)
System.out.println(s);
return;
}
String s2 = s;
for(int i=0; i<=a[k]; i++){
//假定在当前国家k选了i个人,再从第k+1国家开始选,此时总共还需要选择n-i个人
f(a, k + 1, n - i, s2);
s2 += (char)(k+'A'); //每在k国家选一个人就要将此人加到目标字符串中去
}
}
public static void main(String[] args)
{
int[] a = {4,2,2,1,1,3};
f(a,0,5,"");
}
}