สมมติว่าเรามีจำนวนบวก n เราจะบวกตัวเลขทั้งหมดเพื่อให้ได้ตัวเลขใหม่ ให้ทำซ้ำการดำเนินการนี้จนกว่าจะน้อยกว่า 10
ดังนั้นหากอินพุตเป็น 9625 เอาต์พุตจะเป็น 4
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- กำหนดวิธีการแก้ปัญหา() ซึ่งจะใช้เวลา n
- ถ้า n <10 แล้ว
- ส่งคืน n
- s :=0
- l :=พื้นของ (log(n) ฐาน 10 + 1)
- ในขณะที่ l> 0, ทำ
- s :=s + (n mod 10)
- n :=ผลหารของ n / 10
- l :=l - 1
- ผลตอบแทนการแก้ปัญหา
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
import math class Solution: def solve(self, n): if n < 10: return n s = 0 l = math.floor(math.log(n, 10) + 1) while l > 0: s += n % 10 n //= 10 l -= 1 return self.solve(s) ob = Solution() print(ob.solve(9625))
อินพุต
9625
ผลลัพธ์
4