//题目 2318: [传智杯]补刀

//题目解析:输入第一行,包含一个正整数 T,表示数据组数。

//接下来 T 行,每行三个非负整数 h,x,y,其意义已经在题目描述中给出。

//我们假设这个小兵有 h 点的生命值。每次防御塔的攻击可以给小兵造成 x 点伤害,而你的英雄每次攻击可以给小兵造成 y 点伤害。

//你的攻击速度和防御塔攻击速度相同,所以你可以在防御塔第一次攻击小兵之前,或者每次防御塔攻击之后,选择是否对小兵进行一次攻击,当然你也可以选择不攻击。

//解题关键:如何解决先出手或者慢出手原理

```c

#includeint main()

{

int I,T;

long int h,x,y;//这里定义h代表小兵血量,x代表防御塔给小兵造成的x点伤害,y代表你每次出手可以造成的伤害,这里设置int整形类型是应为通过整数进行计算伤害更加容易!

long int i,A;

int flag;

scanf("%d",&T);//这里表示的是循环次数,代表有多少个小兵

for(I=T;I>0;I--)

{

scanf("%ld %ld %ld",&h,&x,&y);

if(!y)

{

printf("No\n");//代表英雄没有攻击能力,无法攻击(出现了被眩晕,致盲等等)

continue;

}

else if(!x||y>=h)//例如王者荣耀里面的召唤师技能中的干扰一样没有进行对小兵或者英雄攻击

{

printf("Yes\n");//代表英雄具有攻击能力并且能有一发平A带走小兵

continue;

}

flag=0; //设置标志

//在这里就有问题了,如果说都是没法英雄或者防御塔一发将其小兵打死呢?这里就要进行判断是先出手还是后出手

A=h/x; //塔需要A次攻击能杀死小兵

if(h%x==0) A--; //如果塔A次攻击杀死小兵就让A减1,保证英雄具有出手击打小兵的机会从而完成补兵过程

for(i=1;i<=A+1;++i)

{

//英雄要想杀死怪,最少需要1次攻击(塔攻击A次以后,英雄补最后一刀),最多需要A+1次(在塔第一次攻击怪之前,英雄攻击一次,以后塔每攻击一次英雄随后攻击一次)

if(i*y+A*x>=h)

//这里做个小解释:如果防御塔一次攻击为50,小兵生命为101,英雄攻击力为1,这里就需要防御塔攻击2次!第三次才到英雄出手!

{

//如果塔的A次攻击造成的伤害加上英雄i次攻击造成的伤害大于怪的血量,代表英雄可以在塔的A次攻击间隔中选择i-1次进行攻击,在塔第A次攻击后发动第i次攻击杀死怪,表示英雄可以补刀,置flag为true,并结束循环

flag=1;

break;

}

else

flag=0;

}

//输出结果

if(flag==1) printf("Yes\n");

else printf("No\n");

}

return 0;

}

```

传智杯C语言题库,[传智杯]补刀-题解(C语言代码)相关推荐

  1. 河南工业大学c语言考试题库,c语言题库(编程)河南工业大学 河工大 c语言期末考试题库...

    c语言题库(编程)河南工业大学 河工大 c语言期末考试题库 (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 C语言题库编程河南工业 ...

  2. 百科园c语言题库第八章南信大,C语言上机题库百科园第3章!南信大!.doc

    C语言上机题库百科园第3章!南信大!.doc (44页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 第三章1.为表示关系x≥y≥z,应使 ...

  3. 计算机二级c语言题库pdf,历年全国计算机二级C语言题库.pdf

    50道 C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 ...

  4. 计算机二级vb语言题库百度云,2016计算机二级VB语言考试题与答案

    2016计算机二级VB语言考试题与答案 距离计算机二级考试还有十多天时间,考生通过试题练习来训练做题速度,了解其考试题型.下面百分网小编为大家搜索整理了计算机二级VB语言考试题与答案,供大家参考练习, ...

  5. 兰州理工大学c语言试题答案,兰州理工大学c语言题库81058116.doc

    兰州理工大学c语言题库81058116 试卷编号:8116 所属语言:C语言 试卷方案:C语言期末模拟练习 试卷总分:100分 共有题型:3种 一.程序填空 共1题 (共计30分) 第1题 (30.0 ...

  6. 兰州理工大学c语言试题答案,兰州理工大学c语言题库81058118.doc

    兰州理工大学c语言题库81058118 试卷编号:8118 所属语言:C语言 试卷方案:C语言期末模拟练习 试卷总分:100分 共有题型:3种 一.程序填空 共1题 (共计30分) 第1题 (30.0 ...

  7. c语言用字符方式拚一个时钟,2012年3月份全国计算机等级考试二级c语言题库(机试) (1)...

    2012年3月份全国计算机等级考试二级c语言题库(机试) (1) 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不 ...

  8. c语言考试常考大题,C语言题库经典题 考试常考题.doc

    C语言题库经典题 考试常考题.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...

  9. C语言答案解析,C语言题库带详细讲解答案解析.doc

    C语言题库带详细讲解答案解析.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...

最新文章

  1. Hadoop wordcount
  2. 短文本分析----基于python的TF-IDF特征词标签自动化提取
  3. MYsql 安装后启动服务1067错误
  4. opendrive匝道
  5. java打印倒立直角三角形
  6. TypeError: db.addUser is not a function : @(shell):1:1 ——mongoDB创建新用户名密码的方法...
  7. python数据分类聚类案例_Python实现的KMeans聚类算法实例分析
  8. 实验5.4 编程实现两字符串的连接(使用string类定义字符串对象)
  9. /dev/shm目录下产生大量的ora_$ORACLE_SID的二进制文件
  10. linux跟踪函数代码,linux ltrace-跟踪进程调用库函数的情况
  11. 【技术直通车】使用FME Extension for ArcGIS读取ArcPad AXF文件
  12. 使用Python获取键盘的输入
  13. 基础练习 Sine之舞(最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。)
  14. matlab 数据导入
  15. Fingerprint
  16. java规则计算_亲属计算规则算法--java实现(关键算法摘要)
  17. linux操作命令笔记
  18. 怎样把亚马逊电子书转换成mobi或pdf
  19. 奇迹虚拟服务器登录软件,奇迹mu 远程云服务器挂机
  20. [转载]做数学是倒过来的(林群)

热门文章

  1. notepad++ 多行批量 标序号
  2. 计算机怎么查看网络连接的地址,各种电脑系统如何查看连接路由器的登录地址是多少?...
  3. 落单的数IV --- lintcode 824
  4. 【GUI界面】基于Python的WSG84三点定位系统(经纬度坐标与平面坐标转换法求解)
  5. Tomcat DBCP连接池导致的线程阻塞问题
  6. AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@7b3106ec)
  7. 基于Java+SpringBoot+vue+element实现爱心捐赠平台系统
  8. 异常检测之指数平滑(利用elasticsearch来实现)
  9. 二叉搜索树的JAVA实现-201805
  10. 我从未见过一个早起、勤奋、谨慎、诚实的人抱怨命运不好