BJ 1110プラスサイクルPython
1523 ワード
1.問題リンク
https://www.acmicpc.net/problem/1110
2.試合前の計画と考え方
<クリア情報>
1)入力値:サイクル計算用N値
2)出力値:サイクル数N
3)制約:0<=N<=99
4)例外:0は無条件1を表す
<共通論理>
数字1=ab=>a+b=cd
数字2=bd=>b+d=ea
数字3=da=>d+a=fb
数字4=ab=数字1
=>サイクル=3
3.解答
def calc_addition_cycle(num):
cycle_check = num
cycle_count = 0
temp_num = 0
next_num = 0
isTrue = True
while isTrue:
temp_num = num // 10 + num % 10
next_num = temp_num % 10 + (num % 10) * 10
num = next_num
cycle_count += 1
if next_num == cycle_check:
isTrue = False
return cycle_count
print(calc_addition_cycle(26)) # 4
print(calc_addition_cycle(55)) # 3
print(calc_addition_cycle(1)) # 60
print(calc_addition_cycle(0)) # 1
4.問題を解くときに直面する困難と悩み
最初は、
while
の条件をtemp_num
として保存する入力値として定義しようとしたが、num
に等しくなければ、temp numは最初の保存時にnumに等しくないため、最初の周期を履行しなければならない無効な要素が生じた.5.解答して分かる概念と感じ
他の開発者の解答を見て、当初は
while
問の条件をTrue
に掛け、希望の条件が出たときにbreak
またはFalse
を取り替える方法を学んだ.Credits:
Reference
この問題について(BJ 1110プラスサイクルPython), 我々は、より多くの情報をここで見つけました https://velog.io/@area363/BJ1110더하기싸이클pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol