Python
1def recursiveDigitsSplitAdded(digits, total, sumUp): 2 if digits < 1 and total < 10: 3 return sumUp + total 4 elif digits < 1 and total >= 10: 5 return recursiveDigitsSplitAdded(total//10, sumUp+total%10, sumUp+total) 6 else: 7 return recursiveDigitsSplitAdded(digits//10, total+digits%10, sumUp) 8 9def recursiveDigitsAdded(digits): 10 11 return recursiveDigitsSplitAdded(digits, 0, 0) 12 13print(recursiveDigitsAdded(3528)) --> 27 14print(recursiveDigitsAdded(99999999999884)) --> 132
数字を一桁ずつ足していき、その合計値が一桁になるまで同じ処理を繰り返し、最後にそれぞれの合計値を返す処理になっています。
例:recursiveDigitsAdded(3528) 3 + 5 + 2 + 8 = 18 → 1 + 8 = 9 → 18 + 9 = 27
ただ、recursiveDigitsAdded(99999999999884)を実行するとエラーになります。
原因は、再帰処理の許容度を超えている為だと思います。
再帰関数でrecursiveDigitsAdded(99999999999884)を実行させるには条件式を見直すべきでしょうか?
自分では、改善案が思い付かないので質問させていただきました。
ご教授頂けると幸いです????♂️
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/22 22:53
2020/06/23 01:00