Computer >> Máy Tính >  >> Lập trình >> Python

Happy Number bằng Python

Ở đây chúng ta sẽ xem cách phát hiện một số n có phải là một số Hạnh phúc hay không. Vì vậy, số hạnh phúc là một số, trong đó bắt đầu bằng bất kỳ số nguyên dương nào thay thế số đó bằng tổng bình phương các chữ số của nó, quá trình này sẽ được lặp lại cho đến khi nó trở thành 1, nếu không nó sẽ lặp lại liên tục trong một chu kỳ. Những con số đó, khi số 1 được tìm thấy, chúng sẽ là số hạnh phúc.

Giả sử con số là 19, đầu ra sẽ đúng như con số hạnh phúc. Như chúng ta có thể thấy từ ngày 19, chúng ta sẽ nhận được

1 2 + 9 2 =82

8 2 + 2 2 =68

6 2 + 8 2 =100

1 2 + 0 2 + 0 2 =1

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Ở đây, chúng tôi sẽ sử dụng phương pháp lập trình động và giải quyết vấn đề này bằng cách sử dụng đệ quy
  • Trường hợp cơ sở là, khi n =1, thì trả về true
  • Khi n đã được truy cập, hãy trả về false
  • đánh dấu n là đã ghé thăm
  • n:=n dưới dạng chuỗi, l:=danh sách tất cả các chữ số trong n
  • temp:=tổng bình phương của tất cả các chữ số
  • hàm trả về một cách đệ quy với tham số tạm thời và danh sách đã truy cập

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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)

Đầu vào

19

Đầu ra

Is Happy: True