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

แฟกทอเรียลผกผันใน Python


สมมุติว่าเรามีตัวเลข a, เราต้องหา n, แฟกทอเรียลของ n (n!) เท่ากับ a ดังที่ทราบ แฟกทอเรียล n =n * (n - 1) * (n - 2) * ... * 1. หากไม่มีจำนวนเต็ม n ดังกล่าว ให้คืนค่า -1

ดังนั้น หากอินพุตเท่ากับ a =120 ผลลัพธ์จะเป็น 5

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

  • ถ้า a อยู่ใน L แล้ว
    • คืนค่า (ดัชนีของ a ใน L) +1
  • มิฉะนั้น
    • คืน -1
  • ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

    ตัวอย่าง

    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))

    อินพุต

    120

    ผลลัพธ์

    5