射击比赛,每次射击打中的环数从高到低分为:0--10环,
要求输入打的枪的数量N,和打中的环数M。
编程求出所有可能的组合:
import java.util.Scanner;
/**
*
* 射击,n枪m环。 编程:求可能的组合
*
*/
public class NQiangMBa {
static int n;
static int m;
static int[] arr;
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
n=Integer.valueOf(input.nextLine()); //输入打的枪数
m=Integer.valueOf(input.nextLine()); //输入打中的环数
input.close();
arr=new int[n];
computer(0);
}
public static void computer(int time){
if(time>=n){
if(getSum()==m){
printf();
}
return;
}
for (int i = 0; i <= 10; i++) {
arr[time]=i;
computer(time+1);
}
}
public static void printf(){
for (int i = 0; i < n; i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static int getSum(){
int sum=0;
for (int i = 0; i < n; i++) {
sum+=arr[i];
}
return sum;
}
}