เพื่อไม่ให้สับสนกับค้นหาปัจจัย!
บทนำ
แฟคทอเรียลของจำนวนเต็มn
สามารถคำนวณได้โดย
มันค่อนข้างง่ายและไม่มีอะไรใหม่ อย่างไรก็ตามแฟกทอเรียลสามารถขยายเป็นแฟคทอเรียลสองเท่าเช่น
สำหรับเลขคู่และ
สำหรับเลขคี่ แต่เราไม่ จำกัด เพียงแฟคทอเรียลสองเท่า ตัวอย่างเช่น
หรือ
หรือ
ขึ้นอยู่กับ ค่าเริ่มต้น
โดยสรุป:
โดยที่
หรือในภาษาอังกฤษธรรมดา: ลบจำนวนแฟกทอเรียลออกจากจำนวนฐานซ้ำ ๆ กันและคูณจำนวนเต็มบวกทั้งหมดที่เกิดขึ้น
ความท้าทาย
เขียนฟังก์ชั่นที่จะคำนวณแฟคทอเรียลแบบซ้ำสำหรับจำนวนเต็มใด ๆ ที่ไม่เป็นลบ
อินพุต
ทั้ง
- สตริงที่มีจำนวนเต็มฐานสิบที่ไม่เป็นลบตามด้วยเครื่องหมายอัศเจรีย์ 1 ตัวหรือมากกว่า เช่น
"6!"
หรือหรือ"9!!"
"40!!!!!!!!!!!!!!!!!!!!"
หรือ
- ค่าเดียวกันที่แสดงโดยจำนวนเต็มสองตัวคือค่าฐานที่ไม่เป็นลบหนึ่งค่าและค่าบวกหนึ่งค่าที่แทนการนับแบบแฟคทอเรียล ซึ่งสามารถทำได้ตามรูปแบบใด ๆ จากกฎ I / O เริ่มต้น
เอาท์พุต
ผลการคำนวณดังกล่าว
คำพูดที่ท้าทาย
0!
เท่ากับ1
โดยนิยาม รหัสของคุณจะต้องบัญชีสำหรับสิ่งนี้- การนับแฟคทอเรียลนั้นถูก จำกัด ด้วยนอกช่วงนี้คุณมีอิสระที่จะเอาท์พุทอะไรก็ได้ นอกเหนือจากซึ่งเป็นข้อยกเว้นเฉพาะกฎนี้
0!
ตัวอย่าง
Input Output
3!!! 3
0! 1
6! 720
9!! 945
10!!!!!!!! 20
40!!!!!!!!!!!!!!!!!!!! 800
420!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 41697106428257280000000000000000
ลองใช้ด้วยการใช้งาน Python ที่ไม่ได้รับโชค: ลองออนไลน์!
ข้อสังเกตทั่วไป
- นี่คือรหัสกอล์ฟดังนั้นคำตอบที่ใช้จำนวนไบต์น้อยที่สุดในแต่ละภาษาจะเป็นผู้ชนะ
- กฎระเบียบมาตรฐาน , I / O กฎระเบียบและกฎหนีใช้
- โปรดรวมลิงก์ลองใช้ออนไลน์เพื่อแสดงรหัสของคุณทำงาน
- โปรดกระตุ้นคำตอบด้วยคำอธิบายรหัสของคุณ
3!!!!!!!
3
ไม่ควรที่จะกำหนดมันก็ควรจะให้ผลผลิตคำตอบ มันเหมือนกับ1!!=1
(ไม่ได้ไม่ได้กำหนด) นอกจากนี้ข้อมูลจำเพาะอินพุตของคุณบอกว่าจะมีอย่างน้อยหนึ่ง!
เสมอดังนั้นตัวอย่างแรก3
จะไม่ตรงกับข้อกำหนด
(3!)!
ว่าจะเป็นการลบคำศัพท์ออกจากแฟกทอเรียล มันเป็นชื่อที่ทำให้เข้าใจผิด ฉันคิดว่ามันจะใช้ฟังก์ชันแฟคทอเรียลซ้ำ ๆ ในโซ่และต้องอ่านอย่างละเอียดเพื่อดูว่ามันคืออะไร โชคดีที่คำถามไม่ได้อธิบายอย่างชัดเจน ชื่อที่ดีกว่าอาจเป็นแฟกทอเรียลหรือแฟคทอเรียลหรืออะไรก็ได้
0!
แต่ข้อสังเกตที่ท้าทายกล่าวว่าจำนวนแฟคทอเรียลจะน้อยกว่าหรือเท่ากับค่าฐาน