การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

30
ค้นหาผลรวมของตัวหารของ N
เขียนโปรแกรมที่แสดงบนหน้าจอผลรวมของตัวหารของตัวเลข (1 ≤ N entered 100) ที่ป้อนโดยผู้ใช้ในช่วง 1 ถึง N นี่คือOEIS A000203 ตัวอย่าง: อินพุต : 7 7 / 1 = 7 7 / 7 = 1 7 + 1 = 8 ผลลัพธ์: 8 อินพุต: 15 15 / 1 = 15 15 / 3 = 5 15 / 5 = 3 …

15
ทำนายการปะทะกัน: โจรจะหนีไปหรือไม่
คิดว่าถนนเป็นเส้นจำนวนเริ่มต้น0และดำเนินการต่อไปเรื่อย ๆ : ................................................................. มีรถสองคันบนท้องถนนที่มีและC เป็นตำรวจที่พยายามจะจับโจร เริ่มที่และเริ่มที่อื่นบนถนน:RCRC0R C.............................R.................................. ตำรวจกำลังเคลื่อนไหว - เขากำลังไล่โจร เขามีความเร็วคงที่ โจรเพิ่งกระโดดเข้าไปในรถของเขา เขาเร่ง แต่ละเห็บความเร็วของโจรจะเพิ่มขึ้นตามการเร่งความเร็วของเขา Say ความเร็วของตำรวจเป็นและเร่งโม่งคือ7 1หากโจรเริ่มต้น30สิ่งนี้จะเป็นถนนที่มีลักษณะเหมือนเห็บแต่ละอัน: C.............................R.................................. .......C.......................R................................. ..............C..................R............................... .....................C..............R............................ ............................C...........R........................ ...................................C.........R................... ..........................................C........R............. .................................................C........R...... หลังจากเห็บสุดท้ายข้างต้นความเร็วของโจรจะเท่ากับตำรวจและเขาก็ยังอยู่ข้างหน้า เนื่องจากตำรวจกำลังเคลื่อนที่ด้วยความเร็วคงที่และโจรก็ยังคงเร่งความเร็วโจรจึงหนีออกมาดังนั้นคุณจึงส่งออกค่าจริง อย่างไรก็ตามหากความเร็วตำรวจเป็น9... C.............................R.................................. .........C.....................R................................. ..................C..............R............................... ...........................C........R............................ ....................................C...R........................ .............................................X................... ... จากนั้นตำรวจจะจับโจรปล้นก่อนที่โจรจะออกไป (ทำเครื่องหมายโดยX) ดังนั้นคุณจะได้ผลลัพธ์ที่ผิดพลาด งานของคุณ กำหนดสามอินพุต - ความเร็วของตำรวจตำแหน่งโจรและความเร่งของโจร - กำหนดว่าโจรจะหนีไปหรือไม่ กฎระเบียบ 0ตำรวจมักจะเริ่มต้นที่ อินพุตทั้งหมดจะเป็นจำนวนเต็มบวก ตำรวจจับโจรถ้าหลังจากติ๊กตำแหน่งตำรวจมากกว่าหรือเท่ากับตำแหน่งของโจร โจรจะหนีไปเมื่อเขายังไม่ถูกจับและความเร็วของเขาจะมากกว่าของตำรวจ …

21
พับจำนวนเต็มเพื่อประหยัดพื้นที่!
นักคณิตศาสตร์บ้าเป็นเจ้าของตัวเลขจำนวนมากและพื้นที่ที่เขาทิ้งมี จำกัด เพื่อช่วยให้บางเขาต้องพับจำนวนเต็ม แต่น่าเสียดายที่เขาขี้เกียจจริงๆ งานของคุณหากคุณต้องการช่วยเขาคือการสร้างฟังก์ชั่น / โปรแกรมที่พับจำนวนเต็มบวกที่กำหนดสำหรับความบ้าคลั่งจำนวนของเรา วิธีการพับจำนวนเต็ม? หากมันหารอย่างสม่ำเสมอด้วยผลรวมของตัวเลขให้หารด้วยผลรวมของตัวเลข หากไม่เป็นไปตามข้อกำหนดดังกล่าวให้นำส่วนที่เหลือมาหารด้วยผลรวมของตัวเลข 1ทำซ้ำขั้นตอนจนกว่าจะถึงผลที่ตามมา จำนวนเต็มที่ถูกพับคือจำนวนของการดำเนินการที่คุณต้องดำเนินการ ลองยกตัวอย่าง (พูด1782): 1 + 7 + 8 + 2 = 18ได้รับผลรวมของตัวเลขของ: 1782หารเท่า ๆ กันโดยดังนั้นจำนวนต่อไปคือ181782 / 18 = 99 99ไม่หารเท่า ๆ กันโดยเหตุนี้เราใช้เวลาที่เหลือ:9 + 9 = 1899 % 18 = 9 9หารอย่างเห็นได้ชัดโดยเราจึงแบ่งมันและได้รับ91 ผลลัพธ์คือ3เนื่องจากต้องการการดำเนินการ 3 ครั้งเพื่อให้สามารถเข้าถึง1ได้ กฎและข้อกำหนด จำนวนเต็มบางคนอาจจะมีผลรวมของตัวเลขเท่ากับ1เช่นหรือ10 100โปรแกรมของคุณไม่จำเป็นต้องจัดการกับกรณีดังกล่าว ซึ่งหมายความว่าคุณจะรับประกันได้ว่าจำนวนเต็มที่ได้รับเป็นอินพุตไม่มีผลรวมของตัวเลขเท่ากับ1และไม่มีการดำเนินการกับจำนวนเต็มที่กำหนดจะส่งผลให้ตัวเลขที่มีผลรวมของตัวเลข1(ยกเว้น1ตัวมันเองซึ่งก็คือ " …

14
ฉันจะระบุรัฐได้กี่รัฐ
เมื่อฉันยังเด็กฉันมีแผนที่ขนาดใหญ่ของสหรัฐอเมริกาติดอยู่บนผนังตรงข้ามกับเตียง เมื่อฉันเบื่อฉันจะจ้องที่แผนที่นั้นและคิดถึงสิ่งต่าง ๆ สิ่งที่ชอบทฤษฎีบทสี่สีหรือรัฐที่ล้อมรอบรัฐอื่น ๆ มากที่สุด เพื่อประหยัดพลังสมองในการนับน้องของฉันคุณจะต้องคิดค้นเครื่องย้อนเวลาและบอกฉันว่ามีกี่รัฐที่ส่งสัญญาณเข้ามา เนื่องจากเวลามีความพิถีพิถันสิ่งนี้จึงต้องสั้นที่สุด งาน เมื่อระบุหนึ่งใน 50 รัฐของสหรัฐอเมริกาไม่ว่าจะด้วยชื่อเต็มหรือตัวย่อของไปรษณีย์ตามที่พบในหน้านี้ ( mirror.org mirror.org ) ให้ส่งกลับจำนวนสถานะที่ชายแดน ต่อไปนี้คือการแม็พอินพุตทั้งหมดสำหรับชื่อเต็มของรัฐกับจำนวนของรัฐที่อยู่ติดกันซึ่งพบได้บนเว็บไซต์นี้ Missouri, Tennessee -> 8 Colorado, Kentucky -> 7 Arkansas, Idaho, Illinois, Iowa, Nebraska, New York, Oklahoma, Pennsylvania, South Dakota, Utah, Wyoming -> 6 Arizona, Georgia, Massachusetts, Michigan, Minnesota, Nevada, New Mexico, Ohio, …
20 code-golf  number 

4
ความแตกต่างเป็นรูปสี่เหลี่ยมผืนผ้า
ในความท้าทายนี้คุณจะได้รับสองรูปสี่เหลี่ยมผืนผ้าที่ทับซ้อนกันและคุณจำเป็นต้องคำนวณรูปสี่เหลี่ยมผืนผ้าที่สร้างขึ้นโดยการลบหนึ่งจากอื่น ๆ ตัวอย่างเช่นหากคุณลบสี่เหลี่ยมสีแดงออกจากสีดำ: คุณท้ายด้วยหนึ่งในสองชุดสี่เหลี่ยมต่อไปนี้: คุณจะต้องจัดการสิ่งต่อไปนี้ด้วย: เพื่อให้ชัดเจนยิ่งขึ้น: คุณจะป้อนค่าพิกัดของสองรูปสี่เหลี่ยมผืนผ้า A และ B คุณต้องแสดงผลสี่เหลี่ยมที่ไม่ได้ซ้อนกันน้อยที่สุดซึ่งครอบคลุมพื้นที่ทั้งหมดของ A โดยไม่มี B การอนุญาตใด ๆ ที่เป็นไปได้จะได้รับอนุญาต พิกัดสี่เหลี่ยมถูกส่งผ่านเป็นจำนวนเต็ม 4 ตัว คุณสามารถส่งต่อพวกเขาเป็นสองคู่ (แทนจุดสองมุม) หรือเป็น tuple / list ของจำนวนเต็ม 4 ตัว อินพุตและเอาต์พุตของคุณจะต้องสอดคล้องกัน A และ B ไม่จำเป็นต้องทับซ้อนกันหรือสัมผัสและแต่ละอันจะมีพื้นที่อย่างน้อย 1 กรณีทดสอบ: [(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 …

28
หาคู่ของคุณ
ท้าทาย รับรายการโดยพลการของ 2 tuples และองค์ประกอบหนึ่งในหนึ่งในสิ่งอันดับผู้ส่งออก "พันธมิตร" ของมันคือให้aและเอาท์พุท[(i,j),...,(a,b),...,(l,m)] bคุณสามารถถือว่าทูเปิลทั้งหมดนั้นมีเอกลักษณ์และองค์ประกอบทั้งหมดในทูเปิลนั้นเป็นสตริง นอกจากนี้สมมติว่าคุณไม่ได้มีทั้งและ(x,y)(y,x) กรณีทดสอบ Input Output [("(", ")"), ("{", "}"), ("[", "]")], "}" "{" [("I'm", "So"), ("Meta", "Even"), ("This", "Acronym")], "Even" "Meta" [("I", "S"), ("M", "E"), ("T", "A")], "A" "T" [("test", "cases"), ("are", "fun")], "test" "cases" [("sad", "beep"), ("boop", "boop")], "boop" "boop" ไบต์ที่น้อยที่สุดจะชนะ!

11
ราพันเซลราพันเซลปล่อยผมของคุณ!
ลักษณะ ฉันเดาว่าทุกคนรู้เทพนิยายของราพันเซลและเจ้าชาย สำหรับผู้ที่ไม่ได้อ่านที่นี่ อย่างไรก็ตามราพันเซลเพิ่งตัดผมของเธอดังนั้นมันอาจจะไม่นานพอที่จะให้เจ้าชายของเธอปีนขึ้นไป! เธออาจเศร้ามาก .. ท้าทาย งานของคุณคือการเขียนฟังก์ชั่นที่ประเมินว่าราพันเซลจะพูดอะไรเมื่อเจ้าชายเรียกให้เธอปล่อยผมของเธอ: เมื่อผมของเธอยาวกว่าหรือเท่ากับหอคอยนั้นสูง veeeery มีความสุขและบอกว่าAaaah!มีจำนวนของas length of her hair - height of the towerเป็นเช่นเดียวกับ มิฉะนั้นผมของเธอไม่ได้มีความยาวเพียงพอและเธอก็เริ่มร้องไห้: Booho!ที่os ก่อนที่hเท่ากับสองในสามของheight of the tower - length of her hairและoหลังจากเอชเป็นส่วนที่เหลือ จำนวนos หลังจากที่Bต้องได้รับการปัดเศษดังนั้นถ้าคุณได้รับ2.6จะมี 3 oวินาที, และคนอื่น ๆ hจะต้องเป็นหลังจากที่ I / O คุณจะได้รับจำนวนเต็มบวก (รวมถึงโมฆะ) เป็นอาร์กิวเมนต์ในรายการหรือเป็นตัวเลขสองตัวตามลำดับที่คุณคิดว่าสะดวกที่สุด แต่คุณต้องระบุว่าคุณต้องเรียงลำดับใด ให้พิมพ์สิ่งที่ราพันเซลจะพูด กรณีทดสอบ ในกรณีทดสอบหมายเลขแรกจะเป็นความยาวของผม 0, 0 …
20 code-golf 

21
ภายในหมายเลขฟีโบนักชี
ความท้าทาย ได้รับการป้อนจำนวนเต็มส่งกลับหมายเลข Fibonacci แรกที่ประกอบด้วยการป้อนข้อมูลภายในตัวเองพร้อมกับดัชนีของหมายเลข Fibonacci นั้น (ดัชนีเริ่มต้นที่ 0 หรือ 1 - ขึ้นอยู่กับคุณ แต่โปรดระบุว่าในคำตอบของคุณ) ตัวอย่างเช่นหากกำหนดอินพุต 12 โปรแกรมจะส่งคืน26: 121393เป็น 12 พบภายในหมายเลข ( 12 1393) และอยู่ที่ดัชนี 26 ของหมายเลขฟีโบนักชี ตัวอย่าง รับอินพุต: 45 โปรแกรมของคุณควรส่งออก: 33: 3524578 การป้อนข้อมูล: 72 เอาท์พุท: 54: 86267571272 การป้อนข้อมูล: 0 เอาท์พุท: 0: 0 การป้อนข้อมูล: 144 เอาท์พุท: 12: 144 เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ

29
เรียกใช้รายการสูงสุดที่สอง
รับรายการของจำนวนเต็มงานของคุณคือการส่งออกค่าที่ใหญ่ที่สุดที่สองในองค์ประกอบkแรกสำหรับแต่ละkระหว่าง 2 และความยาวของรายการอินพุต กล่าวอีกนัยหนึ่งเอาท์พุทค่าที่ใหญ่เป็นอันดับสองสำหรับแต่ละคำนำหน้าของอินพุต คุณสามารถส่งออกค่าตามอำเภอใจสำหรับองค์ประกอบแรก (โดยที่k = 1) หรือเพียงแค่ละเว้นค่านี้เนื่องจากไม่มีค่าสูงสุดที่สองสำหรับรายการขององค์ประกอบ 1 คุณอาจสมมติว่ามีองค์ประกอบอย่างน้อย 2 องค์ประกอบในอินพุต รหัสที่สั้นที่สุดชนะ ตัวอย่าง Input: 1 5 2 3 5 9 5 8 Output: 1 2 3 5 5 5 8 Input: 1 1 2 2 3 3 4 Output: 1 1 2 2 3 3 Input: 2 1 …

14
เครื่องคิดเลขการควบคุมบัตรสเปน ID
นี่เป็นอัลกอริทึมที่ง่ายมากซึ่งฉันแน่ใจว่าสามารถแก้ไขได้ในหลายภาษา ในบัตรประจำตัวประชาชนสเปน (รู้จักกันในชื่อDNI ) ประกอบด้วยตัวเลข 8 ตัวและตัวควบคุม อักขระควบคุมคำนวณด้วยอัลกอริทึมต่อไปนี้: หารตัวเลขด้วย 23 ใช้เวลาที่เหลือของการดำเนินการและแทนที่ด้วยอักขระตามตารางนี้: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 T R W A G M Y F P D X B N J Z S …

28
ตัวระบุเหล่านี้เทียบเท่ากันหรือไม่
ในภาษาNimกฎสำหรับการแยกความแตกต่างตัวระบุจะค่อนข้างผ่อนคลายกว่าภาษาอื่น ๆ ส่วนใหญ่เล็กน้อย ตัวระบุสองตัวมีค่าเท่ากันหรือระบุตัวแปรเดียวกันหากทำตามกฎเหล่านี้ : อักขระตัวแรกของทั้งคู่เหมือนกัน (case sensitive) สตริงทั้งสองจะเหมือนกัน(กรณีในที่สำคัญ)หลังจากลบทุกกรณีของตัวละคร-และ_ ท้าทาย เขียนโปรแกรม / ฟังก์ชั่นที่รับสองสายอักขระที่เป็นตัวแทนของตัวบ่งชี้นิ่มและส่งออกค่าจริงหรือเท็จตามว่าพวกเขาจะเทียบเท่าหรือไม่ตามกฎข้างต้น ข้อมูลจำเพาะ กฎระเบียบมาตรฐาน I / O ใช้ ช่องโหว่มาตรฐานจะต้องห้าม สตริงจะมี ASCII ที่พิมพ์ได้เท่านั้น คุณไม่จำเป็นต้องตรวจสอบว่าเป็นตัวระบุที่ถูกต้องหรือไม่ สตริงอาจถูกใช้เป็นอินพุตแยกกันสองรายการรายการสตริง ฯลฯ (คุณรู้จักการเจาะ) ไม่จำเป็นต้องจัดการสตริงว่าง เอาท์พุทจะต้องสอดคล้องกันสำหรับทั้งความจริงและความเท็จค่า ความท้าทายนี้ไม่ได้เกี่ยวกับการหาวิธีการที่สั้นที่สุดในทุกภาษาค่อนข้างมันเป็นเรื่องเกี่ยวกับการหาวิธีการที่สั้นที่สุดในแต่ละภาษา รหัสของคุณจะได้รับคะแนนเป็นไบต์มักจะอยู่ในการเข้ารหัส UTF-8 เว้นแต่จะระบุไว้เป็นอย่างอื่น อนุญาตให้ใช้ฟังก์ชันในตัวที่ทำงานนี้แต่รวมถึงโซลูชันที่ไม่ต้องพึ่งพาในตัว คำอธิบายแม้สำหรับภาษา "ปฏิบัติ" จะได้รับการสนับสนุน กรณีทดสอบ Input Output count, Count falsey lookMaNoSeparator, answer falsey _test, test falsey test, …

14
Pascal's Rhombus
Pascal's Rhombus (ซึ่งจริงๆแล้วเป็นรูปสามเหลี่ยม) ได้มาจากการเพิ่มในรูปแบบ: * *** x แทน * * x ซึ่งหมายความว่าแต่ละเซลล์คือผลรวมของสามเซลล์ในแถวที่อยู่เหนือมันโดยตรงและหนึ่งเซลล์ในแถวที่ 2 ที่อยู่เหนือมัน เช่นเดียวกับสามเหลี่ยมของปาสคาลแถวซีโรทมีหนึ่งอัน1ที่สร้างสามเหลี่ยม นี่คือสองแถวแรกของรูปสี่เหลี่ยมขนมเปียกปูนของ Pascal 1 1 1 1 1 2 4 2 1 1 3 8 9 8 3 1 งาน กำหนดหมายเลขแถว (เริ่มต้นจากด้านบน) และหมายเลขคอลัมน์ (เริ่มจากรายการที่ไม่ใช่ศูนย์แรกในแถวนั้น) ส่งออกค่าที่เซลล์นั้น ๆ อินพุตทั้งสองอาจเป็นดัชนี 1 หรือ 0 (คุณอาจผสมและจับคู่หากคุณต้องการ) นี่คือcode-golfดังนั้นคุณควรตั้งเป้าหมายที่จะทำให้ขนาดไฟล์ของซอร์สโค้ดของคุณเล็กที่สุดเท่าที่จะทำได้ OEIS A059317

30
สี่เหลี่ยมจัตุรัสเป็นอย่างไร
ในฐาน-10 ทั้งหมดสี่เหลี่ยมที่สมบูรณ์แบบสิ้นสุดใน0 , 1 , 4 , 5 , 6หรือ9 ในฐาน-16 ทั้งหมดสี่เหลี่ยมที่สมบูรณ์แบบสิ้นสุดใน0 , 1 , 4หรือ9 Nilknarf อธิบายว่าทำไมสิ่งนี้ถึงเป็นอย่างไรและทำอย่างไรให้ได้ผลดีในคำตอบนี้แต่ฉันจะให้คำอธิบายสั้น ๆ ที่นี่: เมื่อยกกำลังสองจำนวน Base- N , Nหลัก "คน" จะไม่ได้รับผลกระทบจากสิ่งที่อยู่ในหลัก "หมื่น" หรือ "ร้อย" หลักเป็นต้น เฉพาะตัวเลข "คน" ในN เท่านั้นที่มีผลกับตัวเลข "คน" ในN 2ดังนั้นวิธีที่ง่าย (แต่อาจไม่ใช่นักกอล์ฟที่สุด) ในการค้นหาตัวเลขสุดท้ายที่เป็นไปได้ทั้งหมดสำหรับN 2คือการหาn 2 mod 10สำหรับทั้งหมด0 <= n < 10 ผลลัพธ์แต่ละรายการเป็นตัวเลขสุดท้ายที่เป็นไปได้ สำหรับ …

30
คุณค่าของฉันอยู่ที่ไหน
ตอนนี้เจ้านายของฉันต้องการให้ฉันใช้กลไกที่ช่วยให้เขาค้นหารายการในอาร์เรย์และให้ดัชนี / ดัชนีที่มีค่านั้นเกิดขึ้น งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับอาร์เรย์และค่า (String, Integer, Float หรือ Boolean) และส่งกลับดัชนีของอาร์เรย์ที่มีค่าเกิดขึ้น (0 หรือ 1 ดัชนีตามที่คุณต้องการ) หากค่าไม่ได้อยู่ในอาร์เรย์ให้ส่งคืนอาร์เรย์ว่าง การป้อนข้อมูล: อาร์เรย์ A และค่า V ที่อาจมีหรือไม่มีใน A เอาท์พุท: อาร์เรย์ที่มีดัชนี (s) ที่ V เกิดขึ้นใน A หรือถ้า V ไม่เกิดขึ้นใน A หมายถึงอาร์เรย์ว่าง กรณีทดสอบ: โปรดทราบว่ากรณีทดสอบเป็น 0 12, [12,14,14,2,"Hello World!",3,12,12] -> [0,6,7] "Hello World", ["Hi", "Hi World!", 12,2,3,True] -> …

4
จำแนก Quadrilaterals | ช่วยฉันด้วยการสอบคณิตศาสตร์!
ช่วยด้วย! การสอบคณิตศาสตร์ของฉันกำลังจะมาในไม่ช้าและฉันไม่ได้เรียน! 1ส่วนหนึ่งของการสอบคือการจำแนกรูปสี่เหลี่ยมขนมเปียกปูนเนื่องจากพิกัดจุดยอดของมันซึ่งน่าเสียดายที่ฉันไม่รู้วิธีการทำ 2 ดังนั้นความท้าทายของคุณคือการเขียนโปรแกรมเพื่อทำสิ่งนี้ให้ฉันดังนั้นฉันจึงไม่ล้มเหลว! ท้าทาย ให้สี่จุดยอดที่ไม่มีสาม colinear กำหนดประเภทที่เฉพาะเจาะจงมากที่สุดของรูปสี่เหลี่ยมที่เกิดจากจุดยอดทั้งสี่ สิ่งที่ฉันหมายถึงโดย "การจำแนกเฉพาะส่วนใหญ่" คือแม้ว่าสี่เหลี่ยมทั้งหมดเป็นสี่เหลี่ยมถ้ารูปร่างเป็นสี่เหลี่ยมคุณควรระบุว่ามันเป็นสี่เหลี่ยมจัตุรัสและไม่ได้ระบุว่ามันเป็นสี่เหลี่ยม อินพุต อินพุตจะได้รับเป็นพิกัดสี่ (x, y) คุณสามารถใช้รายการเหล่านี้เป็นรายการความยาว 4 จากรายการ / tuples ของความยาว 2 หรือคุณสามารถป้อนข้อมูลเป็นรายการของพิกัด x และรายการของพิกัด y ที่เกี่ยวข้อง ตัวอย่างเช่นถ้ารูปร่างของฉันมีจุดที่จุด(0, 0), (5, 0), (6, 1)และ(1, 1)คุณอาจเลือกที่จะใช้การป้อนข้อมูลทั้งในรูปแบบต่อไปหรือบางสิ่งบางอย่างที่คล้ายกัน: [(0, 0), (5, 0), (6, 1), (1, 1)] ([0, 5, 6, 1], [0, 0, 1, …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.