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