1まで
2147 ワード
質問する
任意の数Nが1である前に、次の2つのプロセスのうちの1つを繰り返し選択して実行します.ただし,2番目の演算はNをKで割った場合にのみ選択できる. Nから1を減算します. NをKで割った.(ただしKはNの倍数である) (例をスキップ)
NとKが与えられると、Nが1になるまで1回または2回のプロセスを実行する最小回数を求めるプログラムを作成します.
アイデア
1までに最小回数を達成するには、もちろんより多くの数字を減らす必要があります.つまり、除算すればするほど有利になる.だから、分けられるなら分けて、分けられないなら1を抜く論理を作ったほうがいい.
に答える
フィードバックの考え方に正当性を与えようとしたが、残念ながら数学的な証明はしていなかった… を改善する方法もある.よく勉強しなさい. その他時間:7分
任意の数Nが1である前に、次の2つのプロセスのうちの1つを繰り返し選択して実行します.ただし,2番目の演算はNをKで割った場合にのみ選択できる.
NとKが与えられると、Nが1になるまで1回または2回のプロセスを実行する最小回数を求めるプログラムを作成します.
アイデア
1までに最小回数を達成するには、もちろんより多くの数字を減らす必要があります.つまり、除算すればするほど有利になる.だから、分けられるなら分けて、分けられないなら1を抜く論理を作ったほうがいい.
に答える
n, k = map(int, input().split())
count = 0
while n != 1:
if n % k == 0:
n = n / k
count = count + 1
else:
n = n - 1
count = count + 1
print(count)
アイデアをコードに変換するだけで簡単な問題です.フィードバック
Reference
この問題について(1まで), 我々は、より多くの情報をここで見つけました https://velog.io/@2yunseong/1이-될-때까지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol