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? 
3 4 3 10 3 100 5
5 14 124
题意:Tom爱吸烟,刚开时给他n根烟,再输入一个K表示每k根烟可以换一个新的烟;第一行输出一个3代表有3组测试数据,每组该出一个n和k ;
代码如下:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
    int test,n,m,t;
    int sum;
    cin>>test;
    while(test--)
    {
        sum=0;
        cin>>n>>m;
        int t=n;
        while(n>=m)       //n>=m就进入循环
        {
            sum+=n/m;
            n=n/m+n%m;
        }
        printf("%d\n",t+sum);
    }
    return 0;
}原文:http://blog.csdn.net/qq_qingtian/article/details/44461357