这题咋做???

P1150 Peter 的烟

zhangxuecheng @ 2023-05-25 13:21:09

我真的没思路,"与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。"这啥意思


by _saltFish_ @ 2023-05-25 13:23:54

@zhangxuecheng 这句话只是调侃,请忽略。


by QAQ__ @ 2023-05-25 13:27:06

@zhangxuecheng 通常来说,题意类似于这道题的小学奥数题的答案中会出现“向其他人借一个空瓶/烟蒂,兑换后再还回去”这种烦人的情况

这题不需要考虑。


by zhangxuecheng @ 2023-05-25 13:28:58

不能借烟蒂换烟?


by LittleAcbg @ 2023-05-25 15:33:27

@zhangxuecheng 比如 k=3,Peter 现在有 2 个烟蒂。如果是脑筋急转弯,那么 Peter 会从朋友那儿借一个烟蒂,加上自己有的两个,可以再换一支烟,抽完之后有一个烟蒂,再把烟蒂还回去就不欠账了。


by LittleAcbg @ 2023-05-25 15:34:20

这样得到的答案会比标准答案多 1


by Score_Elevate @ 2023-05-26 22:08:33

@zhangxuecheng

#include<bits/stdc++.h>
 #define int long long
using namespace std;
signed main()
{
   int n,k;
   cin>>n>>k;
   int s,m=0,l=n/k;
   s=n+l;
   while(l>=k)
   {
      l-=k;
      m++;
      l++;//每换取一个烟之后都会多一个烟头,所以l++;
   }
   cout<<s+m;
   return 0;
}

范围k<=10的八次方,所以要long long

求关注!


by Plenilune_Dreamer @ 2023-07-10 20:01:12

#include<iostream>
#include<cstdio>

using namespace std;

int main()
{
    int n,k,s=0,m;
    cin>>n>>k;
    m=n;
    for(int i=1;i<=n;i++)
    {
        s++;
        if(s==k)
        {
            s=1;
            m++;
        }
    }
    cout<<m<<endl;
    return 0;
} 

这是我的代码,比较复杂,但比较好理解一点 但是这一个不用开long long啊 前面的 QAQ__ 和 LuoJingjia大佬已经解释清楚了


|