package first;
import java.util.Stack;
public class first {
static int time=10;
/**
* 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?
* 请用递归算法编程实现。[中国某著名通信企业H面试题]
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 连续开枪的次数
// 打枪的的总环数环数
int Boomcount = 0;
Stack<Integer> li=new Stack<Integer>();
Hitprobability(li,time,Boomcount);
}
private static void Hitprobability(Stack<Integer> li, int time,int boomcount) {
// TODO Auto-generated method stub
if(time>0)
{
for(int i=0;i<11;i++)
{
if(10*(11-time)-boomcount-i<=10)
{
li.push(i);
Hitprobability(li, time-1, boomcount+i);
li.pop();
}
}
}else if(time==0)
{
if(boomcount==90)
{
for(int i:li)
{
System.out.print(i+"--");
}
System.out.println("");
}
}
}
}