Hydrogen_H @ 2024-09-26 21:34:09
#include<bits/stdc++.h>
using namespace std;
int dg(int a,int b,int o)
{
if(a/b+o<b)
return a/b;
else
if(o==0)
return a/b+dg(a/b,b,a%b);
else
return (a+o)/b+dg((a+o)/b,b,a%b);
}
int main()
{
int n,k;
cin>>n>>k;
cout<<dg(n,k,0)+n;
return 0;
}
by banglee @ 2024-09-26 21:38:36
emm....这道题没那么麻烦吧,简单数学题而已
by banglee @ 2024-09-26 21:39:28
可以去参考一下题解的思路
by zhangjiahe__ @ 2024-09-26 21:41:52
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
cout << n + (n-1)/(k-1);
return 0;
}
@Leon111 额外加的烟数量可直接算
by wzxujiacheng__ @ 2024-09-26 21:45:01
@leon111
#include<bits/stdc++.h>
using namespace std;
unsigned long long n=0,k=0;
unsigned long long read(){
unsigned long long ret=0,f=1;
char ch=getchar();
while(!isdigit(ch)){
if (ch=='-')f=-f;ch=getchar();
}
while(isdigit(ch)){
ret=(ret<<3)+(ret<<1)+(ch&15);
ch=getchar();
}
return ret*f;
}
int main(){
n=read(),k=read();
unsigned long long cnt=n;
while(n/k>0){cnt+=n/k;int m=n%k;n=n/k+m;}
cout<<cnt;
return 0;
}
//还行吧
by Hydrogen_H @ 2024-10-01 16:52:53
@zhangjiahe__ 我并没有看懂为什么。↓
(结果=
by Hydrogen_H @ 2024-10-01 16:54:47
@wzxujiacheng__ 这不会超时啊?看起来很复杂。
by Hydrogen_H @ 2024-10-01 17:05:01
我已经做出了这道题(刚才)。
此贴已完结
如果不相信可以查看
by wzxujiacheng__ @ 2024-10-01 18:00:12
@Leon111 不会的那是快读
by Hydrogen_H @ 2024-10-02 09:00:23
@wzxujiacheng__ 你这个
isdigit()
是什么?
by wzxujiacheng__ @ 2024-10-02 09:21:54
@Leon111 不用管,把快读用上就行