nyoj-cigarettes

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
这道题的大意:(从输入输出的角度)
先是3组测试数据,第一组(4,3)意思是你买了4支烟,三只烟在一个盒子里,把盒子里的三支烟吸了,可以把这个盒子还给老板,老板会再给你一支作为回报,于是加上原来剩的一支,你的手里还有两支,但是不够三支不能再从老板手里再换了,所以你最多吸5支烟(5=3+1+1);第二组(10,3)你买了10支烟,每3支放在一个盒子里,所以你可以多吸3个,当然这三支烟还可以在换一支,加上原来的一支,一共吸了14支,(14=10+10/3+1);当然第三组数据(100,5),输出124=100+100/5+100/5/5;
所以我的代码:
#include<iostream>
using namespace std;
int main()
{

	int n;
	cin>>n;
	while(n--){

    int m,w,sum;
    scanf("%d%d",&m,&w);
        sum=m;
       while(m/w){ 
		sum+=m/w; 
		m=m/w+m%w; 
	   }

      cout<<sum<<endl;
	}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值