运动员打靶10次,求打中90环的所有可能情况,要求用递归算法实现
public class Main { static int []a = new int[10]; public static void main(String[] args) { dfs(90,9); } public static void outpu(){ for(int i=9;i>=0;i--) { System.out.print(a[i]+" "); } System.out.println(); } public static void dfs(int score,int sum){//sum表示第几次打靶 if(score<0||score>(sum+1)*10){//分数小于0或者剩余打靶次数不可能打到这个分值 退出 return; } if(sum==0){ a[sum] = score; outpu();//到最后一次 输出当前所有数组 return; } for(int i=0;i<=10;i++){ a[sum] = i;//下一次打靶每次的靶值 dfs(score-i,sum-1); } } }