[BaekJoon]1673:チキンクーポン


🔒 質問する


姜民はチキンクーポンをn枚持っていて、チキンを1枚注文することができます.このフライドチキン屋はフライドチキンを注文するたびにスタンプを押して、kスタンプを集めてフライドチキンクーポンを交換することができます.
姜民の現在のチキンクーポンを使って、チキンをどれだけ食べられるかを探します.しかし、チキンを注文するためには必ずチキンクーポンが必要です.

🛫 入力


自然数nとkは複数の線上に与えられる.

🛬 しゅつりょく


各入力は1行に正解を出力します.

🗿 制限

  • 1 < k ≤ n ≤ 1,000,000,000
  • 🔑 に答える


    🙅最初の解答:ランタイムエラー
    エラーのコードがたくさんあります...
    while True :
        n, k = map(int, input().split())
        try :
            if (n > 0 and k > 0) : # 1 < k <= n
                d = n//k
                result = n + d
                while (d >= k) :
                    d //= k
                    result += d
                print(result)
        except :
            break
    🙅2番目の答え:間違っています!
    システムは、複数行の繰り返し入力を受信するために使用されます.stdin.readline()を使用しました.
    try-文を使用して値を入力しない場合、プログラムは終了します.
    でもどうして違うの...
    import sys
    
    while 1 :
        try : 
            n, k = map(int,sys.stdin.readline().split()) # 반복 입력 받을 때
            if (k > 1 and n >= k) :
                d = n//k
                result = n + d
                while (d >= k) :
                    d //= k
                    result += d
                print(result)
        except ValueError :
            break
    

    📌 Pinned


    複数行の繰り返し入力を受け入れる場合は、タイムアウトを回避するにはsys.stdin.readline()を使用する必要があります.