数学大法,又快又好

P1150 Peter 的烟

tuliwei @ 2017-05-16 13:47:06

数学方法

步骤如下:(设sum为能吸到烟的总数,k、n和题上的一样)

  1. 一开始P必然能吸n根烟,先加上去;

2.大家想想,k个烟蒂可以换一支烟,吸完后sum++,同时会产生一个烟蒂。也就是说,k-1支烟蒂可以换一支烟,有n个烟蒂就可以得到n/(k-1)支烟。所以sum+=n/(k-1);(具体看第三步)

3.如果到最后只剩k-1个烟蒂的话不就麻烦了吗? 只要单独列出这种情况就好了(当这种情况发生时,n%(k-1)是等于0的)

#include<iostream>
using namespace std;
int main()
{
    int n,k;
    cin>>n>>k;//输入
    int sum=n+n/(k-1);//1.2
    if(n%(k-1)==0) sum--;//3
    cout<<sum;//输出
    return 0;
}

by pzx1466145162 @ 2017-05-16 13:49:28

666****


by pzx1466145162 @ 2017-05-16 13:49:46

666


by Kidd @ 2017-05-16 13:50:00

我是禁烟协会的,我禁止你做这种有关吸烟的题


by tuliwei @ 2017-05-17 12:12:35

切!


by tuliwei @ 2017-05-17 12:13:18

你先做出来再说


by bayern23 @ 2017-06-26 22:25:50


by sshwy @ 2017-07-19 18:31:54

佩服佩服


by clarkwang @ 2017-07-19 20:10:14

66666666666666666666666666666666666666666666666666666666666666666666666


by Mreblack @ 2017-07-19 20:35:02

...


by Mreblack @ 2017-07-19 20:35:42

为什么要k-1


| 下一页