前提・実現したいこと
Pythonで下記の問題を解いておりましたが、どうしてもある入力に対して間違いを出力します
(2つのインプットに対して不正解)
どこのロジックが間違っているか、ご教示いただけますでしょうか
問題
該当のソースコード
python
1 2def main(): 3 A, B, C = map(int, input().split()) 4 A = int(str(A)[-1]) 5 inset = set() 6 7 tmp = 1 8 alis = [] #このリストに下一桁の数字の候補を入れる 9 10 for _ in range(10): #一桁のみの掛け算を繰り返すだけなので、高々10回でOK 11 tmp *= A 12 tmp = int(str(tmp)[-1]) 13 14 if tmp not in inset: 15 alis.append(tmp) 16 inset.add(tmp) 17 #print(alis) 18 else: 19 break 20 21 cnt = len(alis) #alisにある候補数をcntとする 22 23 #答えるべき回答は、alisの特定のインデックスのもの(特定のインデックス:BのC乗をcntで割ったあまり-1) 24 #BのC乗が大きくなる可能性があるので、Bが何回alisの候補の数を回るか計算、その後それがC回移動する、という形で考えた 25 bamari = B % cnt 26 clis = [] 27 tmp = 1 28 29 for _ in range(10): #bamariのcntで割ったあまりについて考えるため、高々10回でOK 30 tmp *= bamari 31 amari = tmp % cnt 32 if amari not in clis: 33 clis.append(amari) 34 #print(clis) 35 else: 36 break 37 38 camari = C % len(clis) 39 lisb = clis[camari-1] 40 print(alis[lisb-1]) 41 42 43if __name__ == "__main__": 44 main() 45
試したこと
2つのみ不正解なので、コーナーケースが怪しいかと思い
下一桁が0になるパターン等試しましたが、正解になりません
恐れ入りますが、ご意見いただければ幸いです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/23 05:45