打靶问题 一个射击运动员打靶,靶一共有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);
}
}
射击运动员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);
}
}
相关文章推荐
- 打靶问题 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种?
- 打靶问题 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种?
- 打靶问题。一个射击运动员打靶,靶一共有10环,连开10 枪打中90环的可能性有多少?
- 打靶问题。一个射击运动员打靶,靶一共有10环,连开10 枪打中90环的可能性有多少?
- 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。
- 面试题:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算
- 射击运动员10 发打中90环有多少种可能,请编写程序计算出来,并打印出结果, 0 环和10环均有效。
- 射击运动员10枪打90环的打发有多少种
- 递归计算战士打靶S次打了N环一共有多少种可能的问题
- 有一个整数n,写一个函数f(n),返回0~n之间出现的“1”的个数,例如f(1)=1; f(13)=6(1,10,11,12,13一共6个1),最大的f(n)=n的n是多少
- 打靶10次打中90环的可能性有多少种
- 分享:射击运动员10发打中90环有多少种可能?(C#)
- 10枪打90环,一共多少可能
- 射击运动员打靶
- 一个持续很久的问题(Fedora 10下的上网)
- 给定一个英文原文,统计文件里面一共有多少个不同的英文单词
- 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整
- 写一个程序,统计出一个文本文件中一共出现了多少个字母‘a’?
- 跳台阶问题:一个台阶共有N级,如果一次可以跳1级,也可跳2级,求总共有多少种跳法
- SQL 中怎么查询一个数据库中一共有多少个表