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
『私の答え』

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)
『反省点』
  • ずっといくつかの条件を逃して、ドアの上でも位置決めが間違っていて、いつも間違いがあって、ドアはとても弱いようで、
  • 練習を堅持しなければなりません
    『学んだこと』
  • %//.