zoukankan      html  css  js  c++  java
  • 24-语言入门-24-cigarettes

     
    描述
    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 ",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
    另外判断条件也错了,漏掉了相等情况的判断
     
     
    对于题目给定的测试数据测试没有问题,一直找不到问题出错在哪里,
    后来借鉴 【16-语言入门-16-谁获得了最高奖学金】出错找错的经验
    从输入数据入手,连续输入以下数据
     
    2 3
    3 3
    4 3
    5 3
    6 3
    7 3
    8 3
    9 3
    当输入 9 3 时,发现少计算了1,最终确定了错误发生的地方。
     
  • 相关阅读:
    CentOS Linux下VNC Server远程桌面配置详解
    Java 中的悲观锁和乐观锁的实现
    spring @configuration使用
    MySQL 汉字拼音
    chmod用数字来表示权限的方法
    C语言创建删不掉的目录
    Android小经验
    系统清理——查找大文件
    最全Pycharm教程(42)——Pycharm扩展功能之Emacs外部编辑器
    怎样学习程序
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/5141753.html
Copyright © 2011-2022 走看看