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

Chương trình tìm số cách chúng ta có thể nhận được một số là tổng lũy ​​thừa thứ n của các số duy nhất trong Python

Giả sử chúng ta có một số x và một số n khác. Chúng ta phải tìm số cách để lấy x là tổng lũy ​​thừa thứ n của một số số duy nhất.

Vì vậy, nếu đầu vào là x =100 n =2, thì đầu ra sẽ là 3 vì các nghiệm có thể là 6 ^ 2 + 8 ^ 2, 10 ^ 2 và 1 ^ 2 + 3 ^ 2 + 4 ^ 2 + 5 ^ 2 + 7 ^ 2.

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

  • ans:=0
  • Xác định một phương thức có tên là giải quyết (), phương thức này sẽ nhận bốn tham số x, n, cn và cs, là tham số ban đầu
  • các giá trị cho cs =0, cn =1
  • p:=cn ^ n
  • while p + cs
  • ans:=ans + giải quyết (x, n, cn + 1, p + cs)
  • cn:=cn + 1
  • p:=cn ^ n
  • nếu p + cs giống với x, thì
    • ans:=ans + 1
  • trả lại ans
  • Ví dụ

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

    from math import pow
    
    def solve(x, n, cn = 1, cs = 0):
       ans = 0
       p = pow(cn, n)
       while p + cs < x:
          ans += solve(x, n, cn + 1, p + cs)
          cn = cn + 1
          p = pow(cn, n)
    
       if p + cs == x:
          ans = ans + 1
       return ans
    
    x = 100
    n = 2
    print(solve(x, n))

    Đầu vào

    100, 2
    

    Đầu ra

    3