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

Happy Number ใน Python


ในที่นี้เราจะมาดูวิธีการตรวจจับตัวเลข n เป็นเลข Happy กันหรือไม่ ดังนั้นจำนวนสุขคือตัวเลข โดยที่เริ่มต้นด้วยจำนวนเต็มบวกใดๆ แทนที่ตัวเลขด้วยผลรวมของกำลังสองของหลัก กระบวนการนี้จะถูกทำซ้ำจนกว่าจะกลายเป็น 1 มิฉะนั้นจะวนซ้ำเป็นรอบไม่รู้จบ ตัวเลขเหล่านั้นเมื่อพบตัวที่ 1 จะเป็นเลขมงคล

สมมติว่าตัวเลขคือ 19 ผลลัพธ์จะเป็นจริงเนื่องจากตัวเลขนั้นเป็นตัวเลขสุข ดังที่เราเห็นจาก 19 เราจะได้

1 2 + 9 2 =82

8 2 + 2 2 =68

6 2 + 8 2 =100

1 2 + 0 2 + 0 2 =1

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ในที่นี้ เราจะใช้วิธีการเขียนโปรแกรมแบบไดนามิก และแก้ปัญหานี้โดยใช้การเรียกซ้ำ
  • ตัวพิมพ์พื้นฐานคือเมื่อ n =1 แล้วคืนค่าเป็นจริง
  • เมื่อ n ถูกเข้าชมแล้ว ให้คืนค่าเท็จ
  • ทำเครื่องหมาย n ว่าเข้าชมแล้ว
  • n :=n เป็นสตริง l :=รายการหลักทั้งหมดใน n
  • temp :=ผลรวมกำลังสองของตัวเลขทั้งหมด
  • ฟังก์ชันส่งคืนซ้ำด้วยพารามิเตอร์ temp และรายการที่เข้าชม

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

class Solution(object):
   def isHappy(self, n):
      """
      :type n: int
      :rtype: bool
      """
      return self.solve(n,{})
   def solve(self,n,visited):
      if n == 1:
         return True
      if n in visited:
         return False
      visited[n]= 1
      n = str(n)
      l = list(n)
      l = list(map(int,l))
      temp = 0
      for i in l:
         temp += (i**2)
      return self.solve(temp,visited)
ob1 = Solution()
op = ob1.isHappy(19)
print("Is Happy:",op)

อินพุต

19

ผลลัพธ์

Is Happy: True