Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Giai thừa nghịch đảo (Inverse Factorial) trong Python


Cho số a, tìm n sao cho n! (giai thừa) bằng a. Giai thừa n = n * (n-1) * ... * 1. Nếu không tồn tại n nguyên, trả về -1.

Ví dụ, a = 120, đầu ra 5.

Các bước giải quyết:

  • i := 0, num := 1.
  • L := danh sách rỗng.
  • Trong khi i < a:
    • i = factorial(num).
    • Thêm i vào L.
    • num += 1.
  • Nếu a in L, trả về index(a) + 1.
  • Ngược lại trả về -1.

Ví dụ minh họa

import math

class Solution:
    def solve(self, a):
        i, num = 0, 1
        L = []
        while i < a:
            i = math.factorial(num)
            L.append(i)
            num += 1
        if a in L:
            return L.index(a) + 1
        else:
            return -1

ob = Solution()
print(ob.solve(120))

Đầu vào

120

Đầu ra

5