[BOJ] - 1110
問題1110
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()) # 26
first = n # 변수 설정 즉 고정. 26
cnt = 0
while True:
#n이 계속 변함 . 반복
a = n // 10 #일의 자리수 받기
b = n % 10 # 십의 자리수 받기
c = (a+b)% 10 # 일의자리수
n = (b * 10) + c
cnt += 1 # 하나씩 올리기
if (first == n):
break
print(cnt)
説明:
Reference
この問題について([BOJ] - 1110), 我々は、より多くの情報をここで見つけました https://velog.io/@byhazy/백준-1110テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol