24-语言入门-24-cigarettes_fengsharp的博客-程序员秘密

技术标签: 01编程基础-ACM  

题目地址: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=94

描述
Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them
one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarette.
Now,do you know how many cigarettes can Tom has?
输入
First input is a single line,it's n and stands for there are n testdata.then there are n lines ,each line contains two integer numbers giving the values of n and k.
输出
For each line of input, output one integer number on a separate line giving the maximum number of cigarettes that Peter can have.
样例输入
3
4 3
10 3
100 5
样例输出
5
14

124

代码:

#include <stdio.h>
//计算抽了多少支烟
//n-现有烟头数目
//k-k个烟头可以抽1支烟
static int calCigarettes(int n,int k);
int main()
{
     int readLen = 0;
     scanf("%d",&readLen);
     getchar();
     while(readLen > 0)
     {
          int n = 0;
          int k = 0;
          scanf("%d %d",&n,&k);
          getchar();
          printf("%d\n",calCigarettes(n,k));
          --readLen;
     }
     return 0;
}
//计算抽了多少支烟
//n-现有烟头数目
//k-k个烟头可以抽1支烟
static int calCigarettes(int n,int k)
{
     if(n<k || k<=1)
          return n;
     //已经抽了n支烟
     int result = n;
     do
     {
          //烟头中可以抽取k支烟
          int addCigaretCount = n / k;
          n = n % k + addCigaretCount;
          result += addCigaretCount;
     }while(n >= k);//剩余烟头和k对比,相等也需要进行
     return result;
}

做题时,漏掉了最初抽的香烟-n

另外判断条件也错了,漏掉了相等情况的判断

Image(2)

对于题目给定的测试数据测试没有问题,一直找不到问题出错在哪里,

后来借鉴 【16-语言入门-16-谁获得了最高奖学金】出错找错的经验

从输入数据入手,连续输入以下数据

2 3

3 3

4 3

5 3

6 3

7 3

8 3

9 3

当输入 9 3 时,发现少计算了1,最终确定了错误发生的地方。

 

问题虽小,但是花的时间找出错误却没少思前想后

从内心烦躁,到平静,到查看过往日志,想出找问题的方法,并最终在实践中找到答案,着实是中折磨,也是一种修炼。

 

另外不得不吐槽一下,南阳理工的ACM虽然中文居多,分类挺好,但是进去一次那是“蜀道难难于上青天呀”!

希望服务器哪天能够快一点。。。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/studyforgis/article/details/44604279

智能推荐

Zookeeper伪分布集群搭建及简单使用演示_光于前裕于后的博客-程序员秘密

按理说zookeeper至少要有三台主机才能玩,奈何我没用虚拟机也没有那么多主机,只能用伪分布式玩玩了。

Java程序员必看的15本书_weixin_30338743的博客-程序员秘密

学习Java最痛苦的事情莫过于对未来职业方向的选择。尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起。 因此,作为初学者的你必须看完本文。从中你将了解到如何学习Java并选择适合自己的Java。 我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。 一、Ja...

监控mysql 执行过哪些sql语句_MySQL如何监控系统全部执行过的sql语句_weixin_39955938的博客-程序员秘密

MySQL如何监控系统全部执行过的sql语句时间:2019-07-01 11:34:31来源:作者:概述考虑这么一个场景,开发系统时有个模块执行很慢,但是又不知道这中间涉及到什么sql,就可以设想在没什么业务量的时候来监控数据库全部执行过的sql语句,方便排查问题。涉及命令1、开启general log模式MySQL&gt;set global general_log=on;2、关闭gen...

RoboCup机器人仿真2D相关技术介绍_robocup2d球员是自动的吗_marvel_cheng的博客-程序员秘密

RoboCup仿真2D是人类足球比赛的模拟 (1)RoboCup仿真2D利用计算机模拟2D环境下的机器人进行足球比赛 (2) 比赛平台的设计充分体现了控制、通讯、传感和人体机能等方面的实际限制 (3)仿真2D机器人足球的研究重点放在于球队的高层功能:个人技术、局部战术、全局策略等 仿真2D机器人平台的特点 仿真2D平台提供了一个全分布的、包括合作与对抗的多智能体实时环境,具有如下特点:

(原创)uClinux下控制LCD16207等字符设备显示_weixin_30867015的博客-程序员秘密

  很久之前就想学习如何在uClinux下控制硬件的工作,于是在WIKILCD16207网找到了LCD16207的操作说明,刚开始很开心,可是呢,做着做着发现结果出不来,因为刚开始接触uClinux,所以很多东西就不是很清楚,也没有办法找到错误,结果其中就耽误了很多时间,最后终于在Altera论坛上关于LCD16207找到了问题的答案。实验目的:在uClinux下加载DE2上LCD16207的...

C语言基础_increment在c语言_laola的故事的博客-程序员秘密

编译和运行一般系统中的环境包括翻译环境和执行环境。 翻译阶段 翻译环境简单来说就是将编写的高级程序翻译成目标代码,然后通过连接器进行连接,最后生成目标文件。如以下图示: 执行阶段: (1) 程序的执行必须载入内存。在这个过程中,是操纵系统来完成的。此时,那些不是存储在堆栈中的尚未初始化的变量在这个时候获取值。 (2) 启动程序开始,调用main() 函数 (3) 开始执行程序代码。程

随便推点

FPGA开发之算法开发System Generator_wu_shun_sheng的博客-程序员秘密

[原文链接](http://xilinx.eetrend.com/article/8871) 由 技术编辑archive1 于 星期三, 07/22/2015 - 15:42 发表 现在的FP...

亚马逊各个商城的注册要求_淘宝新蔷程序员特训营,快速学会开发项目的博客-程序员秘密

参考:https://sellercentral.amazon.com/gp/help/external/help.html?itemID=201468460&amp;language=zh_CN&amp;ref=efph_201468460_cont_201468440各个商城的注册要求利用亚马逊工具管理全球卖家账户,并在多个商城管理您的商品。详细了解各个区域的注册要求,或点击此处获取更多指导。北美商城 北美 注册链接 北美(美国、加拿大和墨西哥) 使用联合账户

python坐标定位_Appium+python定位方式_weixin_40001372的博客-程序员秘密

介绍appium 几种简单的定位方式1、id定位格式:driver.find_element_by_id("这里是resource-id")driver.find_element_by_id("com.taobao.taobao:id/home_searchedit")2、name定位如上图的定位,就可以通过name来定位格式:driver.find_element_by_name("这里是tex...

linux vim 插件_weixin_34392843的博客-程序员秘密

http://blog.csdn.net/happyteafriends/article/details/8571526以我的ubuntu 12.10为例,安装了vim之后,已经自带了python插件ls /usr/share/vim/vim73/autoload/  adacomplete.vim         netrwFileHandlers.vim  sqlcompl...

双递推数列_征服全世界Orz的博客-程序员秘密

题目描述集合M定义如下:(1)1∈M;(2)x∈M→2x+1∈M,3x+1∈M;(3)再无别的数属于M。试求集合M元素从小到大排列的第n个元素。输入n的值(n输出第n项的值样例输入2样例输出3#include using namespace std; int main() {

深入理解计算机系统:01---计算机系统漫游(信息存储、编译器、硬件结构、操作系统、网络通信、重要概念(Amdahl定律、并行/并发、抽象))(转载)_计算机运行规则 计算编译存储_普通网友的博客-程序员秘密

计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,它们又执行着相似的功能。一些程序员希望深入了解这些组件是如何工作的以及这些组件是如何影响程序的正确性和性能的,以此来提高自身的技能在Kernighan和Ritchie的关于C编程语言的经典教材中,他们通过下面所示的hello程序来向读者介绍C。尽管hello程序非常简单,但是为了让它实现运行,系统的每个主要组成部分都需要协调工作。从某

推荐文章

热门文章

相关标签