面试经典(12)--射击打靶问题

一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?(递归算法) package first; import java.util.Stack; public class first { static int time=10; /** * 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种? * 请用递归算法编程实现。[中国某著名通信企业H面试题] * @param args */ public static vo 阅读详情

题目描述:一个射击运动员打靶,靶一共有10环,连开10 枪打中90环的可能的组合有多少种?

思路分析:每一枪的可能性都有11种,1-10靶或者脱靶,要遍历出每种可能。假设solve(n,sum)代表射击n枪,打中sum环的所有组合的可能。第一枪有11可能,假如第一枪打中i环,那么接下来只要计算solve(n-1.sum-i)环就可以,所以这明显是一个递归的解法。

关键是分析退出条件:sum<0或者10*n<sum,输出结果的条件:num==1且sum<=10

代码如下:

void shoot_solution(int num,int sum,vector<int> &result,int *total)
{
	if(sum<0 ||num*10<sum)
		return;
	if(num==1)
	{
		if(sum<=10)
		{
			for(int i=0;i<result.size();i++)
				cout<<result[i]<<" ";
			cout<<sum<<endl;
			(*total)++;
			return;
		}
		else
			return;
	}
	for(int i=0;i<=10;++i)
	{
		result.push_back(i);
		shoot_solution(num-1,sum-i,result,total);
		result.pop_back();
	}
}


PAT乙级真题 1082 射击比赛 C++实现 题目 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。 输入格式: 输入在第一行中给出一个正整数 N(≤ 10 000)。随后 N 行,每行按下列格式给出: ID x y 其中 ID 是运动员的编号(由 4 位数字组成);x 和 y 是其打出的弹洞的平... 阅读详情

相关推荐

模仿学习与强化学习结合(IL+RL)有没有代表性论文?未来发展趋势如何?

IL与RL的结合正成为AI研究热点,尤其在机器人控制、复杂博弈等需要边学边练的场景。经典方法如Dagger(2010)和GAIL(2016)开创了先用模仿学习预热、再用强化学习微调的模式。近期工作如IN-RIL(2024)提出交替训练策略,显著提升样本效率。开源项目RoboSchool和StableBaselines3为相关研究提供支持。未来趋势包括:1)混合式智能体结合人类经验与自主探索;2)突破小样本学习、自然语言交互等方向;3)提升安全性、样本效率和可解释性。

CyberSoma的博客 2248

打靶10次打中90环的可能性有多少种

/* 此页的程序来自《程序员面试宝典(第三版)》 */ #include using namespace std; const int N=10; int store[N]={0}; int sum=0; void output() { for(int i=0;i { cout } cout ++sum; } void cumput(int sc

random_liu_2013 2486

什么是Claude 的 Agent Skills?

摘要: Claude的Agent Skills功能支持通过结构化技能包(含指令、脚本、工具)实现任务自动化,如数据分析、文档生成等。核心能力包括:1)技能包管理(如Python脚本+模板);2)工具调用(API/数据库交互);3)子代理协作(拆分复杂任务)。快速上手步骤:创建技能包(如Excel报表生成)、配置工具权限、触发执行;支持多代理并行处理(如SQL查询+可视化)。关键技巧:工具需明确定义参数、利用子代理共享上下文、注重权限管控。官方文档与社区资源提供进阶指导,使Claude成为可编程的数字助手。

jobleap.cn求职助手首页 1729

射击运动员10 发打中90环有多少种可能,请编写程序计算出来,并打印出结果, 0 环和10环均有效。

打中90环就是没打中10环,所以打中90环跟打中10环的可能性是一样的。 然后开始递归狂打枪,一到10就记录(if(paramS + i == 10) {S++;break;} );    在循环的控制中已经排除了大于10的可能性(i 0)CountOut(paramS + i, paramCount - 1);  );  如果已经打足了10枪就结束。  其中函数中的参数paramS 是记录目

嘟嘟专栏 3448

如何绘制电气绝缘图(GB9706.1-2007和GB9706.1-2020差异)

是用来描述要考虑设备的绝缘状况和它们的值 ,从而便于和相关部门交流和沟通,如权威机构和检测实验室等。本文为绝缘图的实例, 包括所有相关的绝缘路径以及介电强度,爬电距离和电气间隙的值。

学海无涯的专栏 1万+

基于STM32设计的智能家居控制系统(华为云)_363

本项目设计并实现了一种基于STM32的智能家居控制系统,融合了语音识别、远程控制、环境监测与安全报警等功能。系统以STM32F103C8T6单片机为核心控制器,集成ESP8266 Wi-Fi模块实现与华为云IOT物联网平台的数据交互,采用MQTT协议进行通信。用户可通过语音识别模块控制风扇、空调、窗帘、卧室灯、客厅灯和电视等家电的开关操作,同时也可通过Android手机APP或Windows电脑上位机进行远程控制。系统还具备温湿度、光照强度、烟雾浓度和火焰检测功能,当检测到异常情况时,自动触发蜂鸣器报警并向

880

递归实现,打靶中10次打中90环总共的可能性数(C++)

#include <iostream> #include <string> #include <stdlib.h> using namespace std; int sum_score; int store[10]; void Output() //打印出具体每次可能性具体的分值 { for(int j=9;j>=0;--j) cout<<store[j]<<endl; ++sum_score; //记录可能性的总共的种数 } vo

qq_44327755的博客 1632

uniapp - 热更新提示:WGT安装包中manifest.json文件不存在 | unexpected EOF!报错详细解决,完美搞定WGT安装包中WWW目录下manifest.json不存在问题

uniapp,安卓android,苹果ios,热更新,热更新code:-1202报错,,WGT热更新报错,uniapp热更新wgt出现报错manifest.json文件不存,uniapp安卓苹果软件热更新时出现错误unexpected EOF!如何解决,怎么解决热更新wgt报错,app新版本下载安装报错WGT安装包中manifest.json文件不存在,WGT安装包中WWW目录下manifest.json不存在,uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误,uniapp-wgt

✅ 精选推荐文章 1万+

一个射击选手打靶 java_面试 例题1: 一个射击运动员打靶 --递归 非递归

/************************************************************************//*面试例题1:一个射击运动员打靶靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题]解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归...

weixin_39580748的博客 887

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

Kubernetes 集群升级与备份恢复:从 1.24 到 1.30 的平滑升级实战

详解 Kubernetes 集群版本升级流程(kubeadm 方式),包括前置检查、组件逐个升级、节点排水与恢复,同时演示 etcd 备份与集群灾难恢复方案。

kaixin110a的博客 35

打靶问题

问题:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种?请用递归算法编程实现。(节选自《程序员面试》)以下用C++实现。 #include using namespace std;int sum;int store[10]; //打印函数,符合要求的则把它打印出来void Output(){ for(int i = 9; i >= 0; i--)  

PEPSI_COLA的专栏 2809

2025年下半年网络工程师案例分析真题及答案解析

2025年下半年网络工程师案例分析真题及答案解析

鹿鸣天涯 1086

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

在Git上看UIAutomator2时候,发现了一个面试题。觉得挺有意思,就搞了一下。 原始地址:https://testerhome.com/topics/23010 代码如下: from typing import List # 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种 all_count: int = 0 # 总共有多少中符合条件的打法 every_score: list[int] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # 10

1160

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

程序员面试宝典---8.3 打靶

程序员面试宝典---8.3 打靶关键词: 程序员面试宝典 面试例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题]解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那

281

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

打靶问题c++代码递归实现——程序员面试宝典

一个射击运动员打靶,靶一共10环,连开10枪打中90环的可能性有多少种,使用递归算法实现 使用循环的话需要写10个循环语句,造成时间空间复杂度很高。 故选择递归算法 c++代码 #include using namespace std; int sum; int store[10]; void output() { for(int i=9;i>=0;--i)

IT_job的博客 1793

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

递归面试题1【打靶】

递归面试题1【打靶】 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题] 解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。 我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算...

weixin_30551947的博客 277

面试题83:运动员打靶

题目: 一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。 思路: 用递归加回溯来做。 #include #include #include using namespace std; int sum; vector store; void Output() //打印 { for (int i = stor

tianya_team 841

打靶问题java递归_菜鸟每天练习 之 递归算法(打靶)

例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题]解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算出结果。(可以连续用10个循环语句来表示程序)for (i1=0;i1<=1...

weixin_34469962的博客 751

打靶(递归算法) | 八皇后(回溯算法)

面试例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题] 解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算出结果。读者会问,难道一定要使用递归?当然不是。我们也可以连续用10个循环...

weixin_34349320的博客 321

菜鸟每天练习 之 递归算法(打靶)

<br />例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题]<br />解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算出结果。(可以连续用10个循环语句来表示程序)<br /><br />for (i1=0;i1<=10;i1++)<br /> {<br />      for (i2=

jin2004406的专栏 2243

面试例题1

面试例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题]解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算出结果。读者会问,难道一定要使用递归?当然不是。我们也可以连续用10个循环

zhangmiaoping23的专栏 719

递归算法(打靶)

例题1:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能性有多少种?请用递归算法编程实现。[中国某著名通信企业H面试题] 解析:靶上一共有10种可能——1环到10环,还有可能脱靶,那就是0环,加在一起共11种可能。这是一道考循环和递归的面试题。我们在这个程序中将利用递归的办法实现打靶所有可能的演示,并计算出结果。(可以连续用10个循环语句来表示程序) for (i...

weixin_30500473的博客 492

面试题几道--C/C++

1. 21 22 23 24 25.. 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15

star267的专栏 1071
上一篇: 面试经典(13)--二叉树非递归遍历
下一篇: 面试经典(11)--二叉树层次遍历
OS技术解密
博客等级 码龄16年 3760粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值