コードテスト準備問題1週間2問題を解く
プラスサイクル
問題の説明
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サンプル出力1264
サンプル入力2サンプル出力2553
例入力3例出力3160
例入力4例出力401
例入力5例出力57112
私の答え
文字列の前後位置を数値形式に変換し,複数回比較し,最後に出力を完了した.
問題の説明
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サンプル出力1264
サンプル入力2サンプル出力2553
例入力3例出力3160
例入力4例出力401
例入力5例出力57112
私の答え
n = input()
num = n
recycle_cnt = 0
if int(n) < 10:
num = "0" + n
while True:
num1, num2, sum = num[0], num[1], str(int(num[0]) + int(num[1]))
num = num2+sum[-1]
recycle_cnt += 1
if int(num) == int(n):
print(recycle_cnt)
break
解題後期文字列の前後位置を数値形式に変換し,複数回比較し,最後に出力を完了した.
Reference
この問題について(コードテスト準備問題1週間2問題を解く), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwlstn684/코딩테스트-준비-문제풀이-1주차-2문제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol