藤林椋 @ 2017-11-18 18:31:04
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,sum=0;
cin>>n>>k;
if(n<k)
{
cout<<n;
}
if(n==k)
{
cout<<++n;
}
if(n>k)
{
if(n==0)
{
cout<<n;
return 0;
}
if(n>0)
{
while(n<0)
{
n=n-k;
sum++;
}
sum--;
}
}
cout<<sum;
return 0;
by 快乐的小狮子 @ 2017-12-19 17:57:13
我可以帮你
by 快乐的小狮子 @ 2017-12-19 18:08:22
你可以尝试去得出它的规律,慢慢地、慢慢地、慢慢地、慢慢地、慢慢地(以下省略10000个字)……
好,说正文时间到!
你用些纸笔就能得出:这输出肯定大于等于n,我就设输出变量为ans好了。咱们把ans先赋值n,再把n看作有n个烟蒂,每次都是用掉k个烟蒂,换来一支烟(ans+1,n-k+1)。这是我们惊奇地发现:无非就是一个循环,如果n>=k就循环下去(当n=k-1时,由于要k个烟蒂才能换一支烟,不能讨价还价——也就是换后再还,这是不可以的),每次ans+1以及n-k+1就行了哈!是不是感觉很简单呢?
by ZJH365 @ 2018-02-18 21:21:29
n + (n - 1) / (k - 1); 这样算就可以AC了!!!