สมมุติว่าเรามีตัวเลข a, เราต้องหา n, แฟกทอเรียลของ n (n!) เท่ากับ a ดังที่ทราบ แฟกทอเรียล n =n * (n - 1) * (n - 2) * ... * 1. หากไม่มีจำนวนเต็ม n ดังกล่าว ให้คืนค่า -1
ดังนั้น หากอินพุตเท่ากับ a =120 ผลลัพธ์จะเป็น 5
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- i :=0, num :=1
- L:=รายการใหม่
- ในขณะที่ฉัน
- i :=แฟกทอเรียลของ num
- ใส่ i ต่อท้าย L
- num :=num + 1
- คืนค่า (ดัชนีของ 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