求助,第三个测试点出错

P1150 Peter 的烟

blxdlxdyb @ 2023-10-13 11:23:05


global k
def f(x):
    s=x//k 
    if s>=k:
        s+=f(s) 
        return s 
    else: 
        return s 
n,k=map(int,input().split()) 
n=f(n)+n 
print(n)

by Rex2020 @ 2023-10-13 11:53:12

def ciga(n: int, k: int, ans: int):
    """
    n: 烟头
    k: k个烟头换一根烟
    ans: 抽烟数量
    """
    if n < k:
        return ans
    return ciga(n - n // k * k + n // k, k, ans + n // k)

if __name__ == "__main__":
    n, k = map(int, input().split())
    print(ciga(n, k, n))

可以参考一下


by zx_LWL @ 2023-10-15 11:54:18

不用那么麻烦吧

#include <bits/stdc++.h>
using namespace std;
int main()
{
    long long n,k,c=0,j=0;
    cin>>n>>k;
    while(n!=0){
        n--;
        j++;
        if(j==k){
            n++;
            j=0;
        }
        c++;
    }
    cout<<c;

    return 0;
}

这样就可以了


|