Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาผลรวมของตัวเลขจนเป็นตัวเลขหนึ่งหลักใน Python


สมมติว่าเรามีจำนวนบวก 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