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

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

12
วาดรูปทรงของฉัน
ให้เมทริกซ์สี่เหลี่ยมของระดับความสูง, วาดรูปทรงของมัน งาน สององค์ประกอบxและอยู่ในระดับเดียวกันถ้ารูปร่างy floor(x/10) == floor(y/10)ตัวอย่างเช่น52และ58อยู่ในระดับรูปร่างเดียวกัน แต่58และ64ไม่ใช่ การกระทำของรูปวาดที่กำหนดไว้ดังต่อไปนี้: สำหรับทุกองค์ประกอบeแทนที่ด้วยสตริงสองถ่านเลือกดังนี้ อักขระตัวแรกคือ" "ถ้าองค์ประกอบด้านล่างeอยู่ในระดับรูปร่างเดียวกันกับeหรือหากไม่มีองค์ประกอบอยู่ด้านล่างeและ"_"อย่างอื่น อักขระตัวที่สองคือ" "ถ้าองค์ประกอบทางด้านขวาของeอยู่ในระดับเส้นชั้นเดียวกับeหรือไม่มีองค์ประกอบทางด้านขวาของeและ"|"อื่น ๆ องค์ประกอบภายในแถวเข้าด้วยกันจากนั้นรวมแถวเข้าด้วยกันด้วยการขึ้นบรรทัดใหม่ ตัวอย่าง สมมติว่าอินพุตเป็น[[5,20],[3,6]]ภาพเป็น 5 20 3 6 5ครั้งแรกที่เรามองไปที่ ตั้งแต่3อยู่ในระดับเดียวกับรูปร่างตัวละครแรกคือ5 " "เนื่องจาก20ไม่ได้อยู่ในระดับเดียวกับรูปร่างตัวละครที่สองคือ5"|" 20ตอนนี้เรามองไปที่ เนื่องจาก6ไม่ได้อยู่ในระดับเดียวกับรูปร่างตัวละครแรกคือ20 "_"เนื่องจากมีองค์ประกอบไปทางขวาของไม่มีตัวละครที่สองคือ20" " 3ตอนนี้เรามองไปที่ เนื่องจากไม่มีองค์ประกอบด้านล่าง3, " "ตัวอักษรตัวแรกคือ ตั้งแต่6อยู่ในระดับเดียวกับรูปร่างตัวละครที่สองคือ3" " 6ตอนนี้เรามองไปที่ เนื่องจากไม่มีองค์ประกอบด้านล่าง6, " "ตัวอักษรตัวแรกคือ เนื่องจากมีองค์ประกอบไปทางขวาของไม่มีตัวละครที่สองคือ6" " [[" |","_ "],[" "," "]]ขึ้นอยู่กับเหล่านี้สายสองถ่านที่เราทำทดแทนที่จะได้รับ เข้าร่วมด้วยกันเราจะได้ผลลัพธ์จาก |_ กฎระเบียบ …

26
ทำรูปแบบซิกแซก
งานของคุณคือการป้อนข้อมูลจำนวนเต็มหนึ่งตัวและพิมพ์รูปแบบซิกแซกโดยใช้เครื่องหมายทับและแบ็กสแลช อินพุตจำนวนเต็มพิจารณาความยาวของ zig และ zag แต่ละรายการรวมถึงจำนวนของ zigs และ zags รูปแบบเริ่มต้นจากขวาไปซ้ายเสมอ กรณีทดสอบ 4-> / / / / \ \ \ \ / / / / \ \ \ \ 2-> / / \ \ 0-> 1-> / 8-> / / / / / / / / \ \ \ \ \ …

28
การแจงนับจำนวนเต็มวิงเวียน
ความท้าทายของคุณในวันนี้คือการส่งออกคำที่กำหนดของลำดับที่ระบุจำนวนเต็มทั้งหมด ลำดับมีดังนี้: ถ้าเรามีฟังก์ชั่น 0 ดัชนีสร้างลำดับf(n)และceil(x)เป็นฟังก์ชั่นเพดานแล้วf(0) = 0; abs(f(n)) = ceil(n/2); sign(f(n))เป็นบวกเมื่อnและceil(n/2)เป็นทั้งคู่หรือทั้งคู่ เพื่อช่วยให้เข้าใจลำดับนี้คำศัพท์สองสามคำแรกมีดังนี้: 0 1 -1 -2 2 3 -3 -4 4 5 -5 -6 6 7 -7... งานของคุณคือการเขียนโปรแกรมที่ใช้จำนวนเต็มnและส่งออกnคำที่ตามลำดับ อินพุตอาจเป็น 0 หรือ 1-indexed เท่านั้น กรณีทดสอบ (ดัชนี 0): 0 => 0 1 => 1 2 => -1 3 => -2 4 => …

30
ติดตั้ง Simple Stopwatch
ท้าทาย งานของคุณคือการเขียนโปรแกรมที่ครั้งหนึ่งวินาที (รวมถึงทันทีเมื่อโปรแกรมของคุณเริ่ม) พิมพ์เวลาที่ผ่านไปจากเวลาที่โปรแกรมของคุณเริ่มต้น กฎระเบียบ เวลาจะต้องพิมพ์ในhh:mm:ssรูปแบบ (ศูนย์นำหน้าสำหรับค่าตัวเลขหลักเดียว) การประทับเวลาจะต้องคั่นด้วย CR, LF หรือ CRLF (ไม่มีช่องว่างนำหน้า) เวลาใหม่จะต้องปรากฏทุกวินาที (stdout ไม่สามารถบัฟเฟอร์เป็นเวลาหนึ่งวินาที) พฤติกรรมของโปรแกรมหากเรียกใช้ผ่าน 23:59:59 ไม่ได้กำหนด คุณสามารถใช้sleep(1)แม้ว่าวินาทีที่เฉพาะเจาะจงอาจถูกข้ามเมื่อใดก็ตามที่ค่าใช้จ่ายในการพิมพ์คำนวณวนรอบ ฯลฯ สะสมเป็นวินาที ตัวอย่างผลลัพธ์: 00:00:00 00:00:01 00:00:02 00:00:04 00:00:05 ⋮ โปรดทราบว่า00:00:03หายไปที่นี่เนื่องจากการประมวลผลค่าใช้จ่าย ค่าที่ข้ามจริง (ถ้ามี) ขึ้นอยู่กับการใช้งานและ / หรือระบบ การใช้งานอ้างอิงใน C: (ระบบที่รองรับ POSIX เท่านั้น) #include <unistd.h> // sleep() #include <tgmath.h> #include <assert.h> #include <stdlib.h> …
25 code-golf  date 

4
การหมุนแบบอินเตอร์เลซ
ท้าทาย กำหนดเมทริกซ์จตุรัสของอักขระ (อักขระ ASCII ที่พิมพ์ได้ไบต์เดียว) หมุน "วงแหวน" ของเมทริกซ์แต่ละทิศทางในทิศทางตรงกันข้าม ลองมาตัวอย่าง: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P จากนั้นวงแหวนรอบนอกสุดหมุนตามเข็มนาฬิกา 90 องศาดังนี้: 1 2 3 4 5 L G B 6 1 6 A M …
25 code-golf  matrix 

10
เพิ่มเพชรให้เป็นสองเท่า
ปัญหา รับจำนวนเต็มบวกnที่ไหนn < 100 เอาท์พุทรูปแบบเพชรดังนี้: อินพุต n=1 /\/\ \/\/ อินพุตn=2: /\ /\ //\\/\/\//\\ \\//\/\/\\// \/ \/ อินพุตn=3: /\ /\ //\\ /\ /\ //\\ ///\\\//\\/\/\//\\///\\\ \\\///\\//\/\/\\//\\\/// \\// \/ \/ \\// \/ \/ อินพุตn=4: /\ /\ //\\ /\ /\ //\\ ///\\\ //\\ /\ /\ //\\ ///\\\ ////\\\\///\\\//\\/\/\//\\///\\\////\\\\ \\\\////\\\///\\//\/\/\\//\\\///\\\\//// \\\/// \\// \/ \/ …

6
ลำดับนี้มีเมตามากเกินไป
เราเริ่มต้นด้วยลำดับที่ว่าง 1 ดัชนี: _,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,... ใน n THขั้นตอนที่เรากรอกข้อมูลในทุก (n) ช่องว่างด้วยจำนวนเต็มมากกว่า 1 เริ่มต้นที่ว่างเปล่าเป็นครั้งแรกที่เหลืออยู่ที่ (n) เป็น n THรายการในลำดับ หลังจากขั้นตอนแรก: 2,_,3,_,4,_,5,_,6,_,7,_,8,_,9,_,10,_,11,_,12,_,13,_,... โปรดทราบว่า (1) จะต้องมี 2 เพราะจำนวนเต็มแรกที่มากกว่า 1 คือ 2 ในขั้นตอนที่สองเราเติมทุกช่องว่าง (2) จะเห็นได้ชัดว่า (2) ต้องเป็น 2 2,2,3,_,4,3,5,_,6,4,7,_,8,5,9,_,10,6,11,_,12,7,13,_,... ในขั้นตอนที่สามเราเติมทุกช่องว่าง (3) ช่อง จากลำดับ, a (3) = 3 2,2,3,2,4,3,5,_,6,4,7,_,8,5,9,3,10,6,11,_,12,7,13,_,... ในขั้นตอนที่สี่เราเติมทุกช่องว่าง (4) จากลำดับ, a (4) = 2 2,2,3,2,4,3,5,2,6,4,7,_,8,5,9,3,10,6,11,3,12,7,13,_,... ในที่สุด: …

8
สร้างบันไดสำหรับลูกของฉัน
วันก่อนลูกชายของฉันขอให้ฉันสร้างบันไดให้เขาโดยใช้บล็อกเลโก้ - ไอช และฉันมาพร้อมกับสิ่งนี้: จากนั้นลูกของฉันขอให้ฉันใช้โปรแกรมโดยใช้จำนวนไบต์น้อยที่สุดที่สร้างบันไดที่คล้ายกันในหน้าจอคอมพิวเตอร์ ฉันไม่ค่อยเก่งเรื่องcode-golfดังนั้นฉันต้องการความช่วยเหลือจากคุณ ฉันต้องการโปรแกรมที่: รับจำนวนเต็มบวกพร้อมจำนวนระดับที่บันไดจำเป็นต้องมี แสดงผลการวาดของบันไดด้วยรูปแบบที่คุณเห็นในภาพ เอาท์พุทจะอยู่ในรูปแบบข้อความ แต่ก้อนอิฐสามารถแยกออกจากกันได้ ตัวอย่างเช่นคุณอาจใช้อักขระ '█' เป็นครึ่งบล็อกและวาดสีตามที่คุณต้องการหรือเพียงแค่เลือกตัวละครที่คุณต้องการ ข้อ จำกัด : บล็อกต้องมีสามสีที่แตกต่างกันซึ่งจะถูกใช้ให้นานที่สุดเท่าที่จะเป็นไปได้ (ถ้าอินพุต 1 หรือ 2 มีบล็อกไม่เพียงพอที่จะใช้ทั้งสามสี) หากคุณต้องการคุณสามารถใช้อักขระ '░▒▓' หรือเลือกอักขระที่แตกต่างกันสามตัว ไม่มีบล็อกสองอันที่มีสีหรือลวดลายเดียวกันสามารถวางเรียงกันได้ ลูกชายของฉันไม่สนใจเกี่ยวกับช่องว่างต่อท้ายหรือบรรทัดใหม่ตราบใดที่มีการวาดบันได ตัวอย่าง (ขออภัยสำหรับตัวเลือกที่ไม่ถูกต้อง): Input: 1 Output: ██ Input: 2 Output: ██ ▓▓ Input: 3 Output: ██ ▓▓ ██░░ Input: 5 Output: ██ ██ …

24
ลดสตริงให้เป็นตัวอย่างของตัวอักษร
รับสตริงที่ไม่ว่างเปล่าซึ่งประกอบด้วยอักขระตัวอักษรและตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (ช่องว่าง[a-zA-Z ]) ที่ต่ำกว่าเท่านั้นให้ลดลงเป็นตัวอย่างของตัวอักษรเริ่มต้นด้วยอักขระตัวแรก ในการลดสตริงให้เริ่มต้นด้วยอักขระตัวอักษรตัวแรกจากนั้นลบอักขระทุกตัวออกหลังจากนั้นไม่ใช่ตัวอักษรถัดไปของตัวอักษร ทำสิ่งนี้ต่อไปจนกว่าจะถึงจุดสิ้นสุดของสตริง ตัวอย่างเช่นcodegolf: เริ่มต้นด้วยcนำออกoเนื่องจากไม่ใช่ตัวอักษรถัดไปของตัวอักษร เก็บdตามที่เป็นตัวอักษรตัวถัดไปและเก็บeตามที่เป็นตัวอักษรถัดไปด้วย ลบg, oและและให้lf ตัวอย่างสุดท้ายของคุณก็คือ cdef กฎระเบียบ ควรรักษาระดับตัวพิมพ์ใหญ่ไว้ดังนั้นCodEgolFจะส่งผลให้CdEF ช่องว่างไม่ใช่ตัวอักษรของตัวอักษรและควรลบออกแม้ว่าจะเป็นจุดเริ่มต้นของสตริง เนื่องจากลักษณะของการลดตัวละครตัวอักษรแรกของการป้อนข้อมูลที่จะเสมอเป็นตัวอักษรตัวแรกของการส่งออก zZเป็นตัวอักษรตัวสุดท้ายของตัวอักษร ไม่มีตัวอักษรอยู่หลังจากนั้นตัวอักษรจะไม่วนซ้ำ กรณีทดสอบ codegolf -> cdef CodEgolf -> CdEf codeolfg -> cdefg ProgrammingPuzzles -> P Stack Exchange -> St The quick red fox jumped over the lazy brown dog -> Tuvw Zebra -> …

26
ฉันเป็นหมายเลขคัลเลนหรือไม่
หมายเลขคัลเลนคือหมายเลขใด ๆ ที่อยู่ในลำดับที่สร้างโดยใช้สูตร: C (n) = (n * 2 ^ n) +1 งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่รับอินพุตและส่งออกค่าความจริง / ผิดพลาดโดยพิจารณาจากอินพุตเป็นหมายเลขคัลเลน การป้อนข้อมูล: จำนวนเต็มที่ไม่เป็นลบระหว่าง 0 ถึง 10 ^ 9 (รวม) เอาท์พุท: ค่าความจริง / เท็จที่ระบุว่าอินพุตเป็นหมายเลขคัลเลน กรณีทดสอบ: Input: Output: 1 ---> truthy 3 ---> truthy 5 ---> falsy 9 ---> truthy 12 ---> falsy 25 ---> truthy เกณฑ์การให้คะแนน: …

30
เป็นหมายเลขของ Lynch-Bell หรือไม่
คุณจะได้รับจำนวนเต็มบวก (ซึ่งจะไม่มี 0) เป็นอินพุต งานของคุณคือตรวจสอบว่าเป็นหมายเลข Lynch-Bell หรือไม่ ตัวเลขคือหมายเลข Lynch-Bell หากตัวเลขทั้งหมดไม่ซ้ำกันและตัวเลขหารด้วยตัวเลขแต่ละตัว ในความเป็นจริงมีเพียง 548 หมายเลขลินช์เบลล์ดังนั้นการเข้ารหัสอย่างหนักจึงมีความเป็นไปได้ แต่เกือบจะนานกว่าแน่นอน 126 คือหมายเลข Lynch-Bell เนื่องจากตัวเลขทั้งหมดไม่ซ้ำกันและ 126 หารด้วย 1, 2 และ 6 คุณสามารถส่งออกค่าความจริงและเท็จใด ๆ ตัวอย่าง: 7 -> truthy 126 -> truthy 54 -> falsy 55 -> falsy 3915 -> truthy นี่คือOEIS A115569

3
หุ่นยนต์ของ Buzzby Berkeley Hokey Pokey
หุ่นยนต์ของ Buzzby Berkeley Hokey Pokey งาน เขียนโปรแกรมหรือฟังก์ชั่นเพื่อสร้างแอนิเมชั่นศิลปะ ASCII ที่แสดงหุ่นยนต์เต้นรำไปตามเนื้อเพลงของ Hokey Pokey (หรือ Cokey หากคุณต้องการ) ในรูปแบบของหมายเลข Busby Berkeley! ตัวอย่างผลลัพธ์ อินพุต ยอมรับสามข้อโต้แย้ง (สันนิษฐานว่าถูกต้อง): N = จำนวนหุ่นยนต์ในบรรทัด (ต่ำสุด = 6) B = ระยะเวลาหนึ่ง "จังหวะ" เป็นมิลลิวินาที (ขั้นต่ำ = 10) D = หน่วงเวลาเป็น ms ระหว่างโรบอตต่อเนื่อง (Min = 0) (ในตัวอย่างผลลัพธ์ด้านบน: N = 8, B = 380, …

10
ช่วยฉันตีหมายเลขของฉันด้วย!
เมื่อเขียนโปรแกรมรหัสกอล์ฟฉันมักจะลงเอยด้วยค่าคงที่ตัวเลข ฉันใส่มันเป็นทศนิยมเสมอเพราะนั่นคือสิ่งที่ฉันคิด แต่ฉันเพิ่งรู้ว่าภาษาของฉันรองรับรูปแบบตัวเลขอื่น ๆ ที่อาจทำให้ฉันย่อรหัสของฉันลงเล็กน้อย ท้าทาย รับจำนวนเต็มที่ไม่เป็นลบน้อยกว่า 2 ^ 53-1 ตัดสินใจว่าจำนวนเต็มนั้นมีการแทนค่าสั้นที่สุดใน: ทศนิยม เลขฐานสิบหก สัญกรณ์วิทยาศาสตร์ ทศนิยม เนื่องจากนี่เป็นรูปแบบเริ่มต้นของภาษาของฉันจึงไม่จำเป็นต้องมีเครื่องหมายพิเศษสำหรับรูปแบบนี้ ทุกหมายเลขจะแสดงตามปกติสำหรับทศนิยม เลขฐานสิบหก ภาษาของฉันใช้0xคำนำหน้าสำหรับค่าคงที่เลขฐานสิบหก ซึ่งหมายความว่าหากตัวเลขมีเลขฐานสิบหก 4 หลักจะใช้เวลา 6 ไบต์เพื่อแสดงตัวเลขนั้น สัญกรณ์วิทยาศาสตร์ ภาษาของฉันใช้รูปแบบต่อไปนี้สำหรับสัญกรณ์ทางวิทยาศาสตร์: [ฐานจริง] e [เลขชี้กำลังจำนวนเต็มของ 10] ตัวอย่างเช่น700จะแสดงเป็น7e3และ699จะแสดงเป็น6.99e3เพราะฐานจะต้องอยู่ระหว่าง -10 ถึง 10 (ไม่รวม) สำหรับจุดประสงค์ของการท้าทายฐานจะมีค่าอย่างน้อย 0 เสมอเนื่องจากจำนวนที่ป้อนนั้นไม่เป็นลบ เอาท์พุต คุณควรกลับวิธีระบุรูปแบบที่สั้นที่สุด (เช่น 0 สำหรับทศนิยม, 1 สำหรับ hex, 2 สำหรับวิทยาศาสตร์) อีกทางหนึ่งคุณอาจส่งออกการแสดงตัวเลขที่น้อยที่สุดของตัวเอง กรณีทดสอบ …

12
เขียนฟังก์ชั่นเป็นพหูพจน์สำหรับภาษารัสเซีย
ในภาษาอังกฤษคำนามสามารถใช้สองรูปแบบที่แตกต่างกันขึ้นอยู่กับว่าพวกเขาเป็นเอกพจน์ (หนึ่ง) หรือพหูพจน์ (สิ่งอื่น) ตัวอย่างเช่นเราจะพูดว่า "1 สุนัข" แต่ "สุนัข 2 ตัว", "0 สุนัข", "57 สุนัข" เป็นต้น ในรัสเซียมีสามประเภท แทนที่จะเป็น "สุนัข 1 ตัว, สุนัข 2 ตัว, สุนัข 5 ตัว" ในภาษารัสเซียมันจะเป็น "1 собака, 2 собаки, 5 собак" หมวดหมู่จะถูกแบ่งตามตรรกะต่อไปนี้: "เอกพจน์": ใช้สำหรับ 1 และหมายเลขใด ๆ ที่ลงท้ายด้วย 1 ยกเว้นตัวเลขที่ลงท้ายด้วย 11 ตัวอย่าง: 1 собака, 21 собака, 101 …

30
รายการหมายเลขโมดูลัสดัชนีของพวกเขาในรายการ
ง่าย ๆ หนึ่ง: จดรายการจำนวนเต็มบวกขณะป้อนและเอาท์พุทตัวเลขจะปรับค่าดัชนี 1 รายการในรายการ ถ้าจำนวนเต็มเข้าเป็น{a, b, c, d, e, f, g}ผลลัพธ์ที่ควรจะ{a%1, b%2, c%3, d%4, e%5, f%6, g%7}อยู่ที่ไหน%เป็นผู้ประกอบการโมดูลัส กรณีทดสอบ: 10 9 8 7 6 5 4 3 2 1 0 1 2 3 1 5 4 3 2 1 8 18 6 11 14 3 15 10 6 19 …
25 code-golf  math  number 

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