您的位置:首页 > 其它

打靶问题 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种?

2017-07-19 17:34 573 查看
转载:http://mmdev.iteye.com/blog/1760112

射击运动员10枪打90环的打法有多少种?用一段程序实现,将每种打法打印出来。(每法成绩均为整数,且在0到10环之间,可为0环也可为10环)。

思路:使用递归思想

首先考虑到一共要打十枪。则可以分三种情况来考虑:

1.如果当前超过了十枪或者积分超过了给定值,则返回

2.如果当前为第十枪,判断最后一枪的积分是否有可能达到给定值(0~10)

  如果可以,可能值加1,然后返回;否则直接返回。

3.其他情况下,继续递归

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #931a68 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; min-height: 19.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco }
span.s1 { color: #000000 }
span.s2 { color: #0326cc }
span.s3 { color: #931a68 }
span.s4 { color: #7e504f }
span.Apple-tab-span { white-space: pre }
private static int sum = 0;

private static int SCORE = 90;

public static void main(String[] args) {

compute(10,0);

System.out.println(sum);

}

public static void compute(int num, int scores) {

if (num <= 0 || scores > SCORE) {

return;

}

if (num == 1) {

if (scores + 10 >= SCORE) {

sum++;

return;

}

}

for (int i = 0; i <= 10; i++) {

compute(num - 1, scores + i);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐