[BaekJoon]1110号:プラスサイクル(Python)

821 ワード

Python while文練習問題(3)


質問する


0以上99以下の整数を指定すると、次の演算が可能になります.与えられた数字が10より小さい場合は、前に0を加えて2桁にし、各桁の数字を加える.そして,与えられた数字の右端桁を先に求めたプロトコルの右端桁に加算することで,新しい数字を生成することができる.次の例を見てみましょう.
26から始まります.2+6=8.新しい数字は68です.6+8=14.新数は84です.8+4=12.新しい数字は42です.4+2=6.新しい数は26です.
上の例は4回で元の数に戻ることができます.したがって、26の周期長は4である.
Nが与えられた場合、Nの周期長を求めるプログラムを作成してください.

入力


1行目はNです.Nは0以上、99以下の整数である.

しゅつりょく


1行目にNのサイクル長を出力する.

初回試行(成功)

N=int(input())
C = N
K=0

while True:
  A = C // 10
  B = C % 10
  C = ((A+B) % 10) + (B*10)
  K=K+1
  if (N == C) :
    break  

print(K)
#comment
1.初回作成時、無限ループは中断されなかった.理由はNとCの定義が間違っているからです.最初に入力したNの値をCと定義し、下部を変更し続けるように設定します.
そこでC=Nの値を決めて解きます.
2.二桁以上の整数を分割する方法を習得した.
3.オブジェクトを定義することが重要です.