海岛Blog

海是无垠的,岛在海中是独立的,有一片自己的天空

POJ2509 UVA10346 Peter's Smokes【模拟】

Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 18097 Accepted: 7441

Description

Peter has n cigarettes. He smokes them one by one keeping all the butts. Out of k > 1 butts he can roll a new cigarette. 
How many cigarettes can Peter have? 

Input

Input is a sequence of lines. Each line contains two integer numbers giving the values of n and k.

Output

For each line of input, output one integer number on a separate line giving the maximum number of cigarettes that Peter can have.

Sample Input

4 3
10 3
100 5

Sample Output

5
14
124

Source


问题链接POJ2509 UVA10346 Peter's Smokes

问题简述

  彼得有n支雪茄,每k个烟头可以换一支新雪茄,问彼得最多可以吸多少支雪茄。

问题分析

  吸雪茄,每k个烟头可以换一支新雪茄,迭代计算问题,是一个模拟过程。

  这个题的结果与喝可乐略有不同,不可借烟头。参见参考链接。

程序说明:(略)

题记:(略)


参考链接UVA11150 Cola【数学+模拟】


AC的C++语言程序如下:
/* POJ2509 UVA10346 Peter's Smokes */

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n, k, ans;

    while(~scanf("%d%d", &n, &k)) {
        ans = 0;
        while(n >= k) {
            ans += k * (n / k);
            n = n % k + n / k;
        }
        ans += n;

        printf("%d\n", ans);
    }

    return 0;
}





阅读更多
所属专栏: ACM题解
想对作者说点什么? 我来说一句

FOJ 1150 Peter's smokes

2009年05月06日 514B 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭