独孤枭燕 @ 2019-08-22 20:56:05
using namespace std;
int n,k,sum,num;
int main()
{
cin>>n>>k;
sum+=n;
while(num>k)
{
num=n%k;
sum=sum+n/k;
}
cout<<sum;
return 0;
}
by 灵光一闪 @ 2019-08-22 21:00:04
@独孤枭燕 因为你的while循环只会循环一次
by 传奇666666 @ 2019-08-22 21:00:20
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k,ans;
int main()
{
cin>>n>>k;
ans=n;
while(n>=k)
{
ans+=(n/k);
n=n/k+n%k;
}
cout<<ans;
return 0;
}
by 传奇666666 @ 2019-08-22 21:00:35
应该这么写
by 传奇666666 @ 2019-08-22 21:00:57
您的代码应该每次都会输出n
by 0nullptr @ 2019-08-22 21:01:38
@独孤枭燕 您的while循环写的不对,应该是
while(n>=k){
num=n%k;
n/=k;
s+=n;
n+=num;
}
另外说一句,以后发代码要点</>
按钮
by 灵光一闪 @ 2019-08-22 21:01:51
@传奇666666 这个用公式是O(1)对吧?
by 传奇666666 @ 2019-08-22 21:05:39
就直接
cout<<n+(n-1)/(k-1)
应该也是对的
by 独孤枭燕 @ 2019-08-22 21:14:20
谢谢大佬们的帮助
by 冰冰手里有糖 @ 2019-08-23 13:40:52
@独孤枭燕
using namespace std;
int main(){
int a,k,sum=0;
cin>>a>>k;
int cigarette=a;
int summ=a;
while(cigarette>=k){
int i,j;
i=cigarette/k;
j=cigarette%k;
cigarette=i+j;
summ+=i;
}
cout<<summ;
return 0;
}