Pythonアルゴリズム086|[標準1110]プラスサイクル**
86.プラスサイクル
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のサイクル長を出力する.
入力例1
26
サンプル出力1
4
『私の答え』
(1)ずっといくつかの条件を逃して、ドアの上でも位置決めが間違っていて、いつも間違いがあって、ドアはとても弱いようで、 練習を堅持しなければなりません
『学んだこと』%//.
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のサイクル長を出力する.
入力例1
26
サンプル出力1
4
『私の答え』
cnt=0
aa=int(input())
if aa<10:
a,b=0,aa
else:
a,b=map(int,str(aa))
if a+b>10:
k=a+b-10
else:
k=a+b
while True:
cnt+=1
print(a,b,k)
if (b*10 + (k)) == aa :
break
elif (b*10 + k)==aa:
break
else:
a,b=b,k
if a+b>=10:
k=a+b-10
else:
k=a+b
print(cnt)
<解答>(1)
n = int(input())
if n<10:
n = n*10
cycle = 0
new = n
while(1):
temp = (new//10 + new%10)
if temp>9:
temp = temp%10
new = (new%10)*10 + temp
cycle += 1
if(n==new):
print(cycle)
break
(2)
n = num = int(input())
count = 0
while True:
ten = n // 10
one = n % 10
total = ten + one
count += 1
n = int(str(n % 10) + str(total % 10))
if (num == n):
break
print(count)
『反省点』『学んだこと』
Reference
この問題について(Pythonアルゴリズム086|[標準1110]プラスサイクル**), 我々は、より多くの情報をここで見つけました https://velog.io/@myway00/파이썬-알고리즘-086-백준-1110-더하기-사이클テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol