LHX05 @ 2023-08-12 09:41:09
#include<bits/stdc++.h>
using namespace std;
int main ()
{
int n,k,m;
cin>>n>>k;
m=n/k;
cout<<n+m;
return 0;
}
by OIerWu_829 @ 2023-08-12 09:46:04
。。。
建议您参考一下简单的题解
by rnf5114 @ 2023-08-12 09:47:17
@Lihaixin05 有没有种可能,你第二次抽完的烟还可以再换
by LHX05 @ 2023-08-12 09:53:39
@wzj0829 (n-1)/(k-1); 这个是什么意思? 我看题解也不懂啊
by OIerWu_829 @ 2023-08-12 09:57:27
@Lihaixin05
题解:
因为k个烟蒂=1根烟+1个烟蒂
所以k-1个烟蒂=1根烟
注意减掉最后一根烟的烟蒂
(因这题并没有借烟蒂换烟再还回这一说)
自己再代入算算
by LHX05 @ 2023-08-12 11:07:08
@wzj0829 谢谢老师
by OIerWu_829 @ 2023-08-12 11:47:04
不要叫我老师,
我9月份才6年级
求个关
by all___right @ 2023-08-12 13:54:54
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,a,c;//5
cin>>n>>k;//6
a=n+n/(k-1)-1;//7
if(n%(k-1)==0){//8
cout<<a;//9
}
else{
c=n%k;//12
cout<<((n-c)+(n-c)/(k-1))+c;//13
}
return 0;
}
//变量ac用于便捷,用k个烟蒂可以换1个,等于用了k-1个烟蒂
//在n个烟蒂里找k-1个烟蒂有多余用变量存
//n+(n/(k-1))是在没有多余情况下题目中说不能借瓶盖所以还要-1变成n+n/(k-1)-1
//有多余那就用另一个变量存多余,这里不用去异次元借瓶盖就是((n-c)+(n-c)/(k-1))+c
//多不多余看if判断
@Lihaixin05
by all___right @ 2023-08-12 13:57:09
老代码告诉我们c要剪掉:```
using namespace std;
int main(){ int n,k,a,c;//5 cin>>n>>k;//6 a=n+n/(k-1)-1;//7 if(n%(k-1)==0){//8 cout<<a;//9 } else{ c=n%k;//12 cout<<a+c;//13 } return 0; }
(这个老代码30,有解析的全ACAJPD)
by all___right @ 2023-08-12 13:58:41
@Lihaixin05 m不一定能被n和k整除,而且你有没有想过n/k可能大于k?
by all___right @ 2023-08-12 14:00:37
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,a,c;//5
cin>>n>>k;//6
a=n+n/(k-1)-1;//7
if(n%(k-1)==0){//8
cout<<a;//9
}
else{
c=n%k;//12
cout<<a+c;//13
}
return 0;
}
老代码