zoukankan      html  css  js  c++  java
  • cigarettes

    cigarettes

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:2
    描述

    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

    题意其实很简单,主要是k根烟头可以换一根烟,其最多吸几根烟

    我AC代码,很好理解

    #include<stdio.h>
    int main()
    {
    	int m,n,i,j,k;
    	scanf("%d",&m);
    	for(i=0;i<m;i++)
    	{
    		scanf("%d%d",&n,&k);
    		for(j=1;j<=n;j++)
    		{
    			if(j%k==0)
    				n++;
    		}
    		printf("%d
    ",n);
    	}		
    	return 0;
    }


    优秀代码如下,其实当时刚看时有些困惑

    #include<stdio.h>
    int main()
    {
    	int m;
    	scanf("%d",&m);
        while(m--)
    	{
    		int n,k,sum;
    		scanf("%d%d",&n,&k);
    		sum=n;
    		while(n/k)                   
    		{ 
    			sum+=n/k;  
    			n=n/k+n%k; 
    		}
    		printf("%d
    ",sum);
    	}
    	return 0;
    }        
    


     

  • 相关阅读:
    机器学习之sigmoid函数
    linux时间校对
    Lumen5.7快速实现Captcha图片验证码功能
    莫烦python教程地址
    获得用户的真实ip HTTP_X_FORWARDED_FOR
    grep日志去重
    asio的网络通讯代码练手
    my simplest kv db
    c++11 线程池学习笔记 (二) 线程池
    c++11 线程池学习笔记 (一) 任务队列
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4237339.html
Copyright © 2011-2022 走看看