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

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

9
อุปกรณ์เสริมหลังจากความจริง!
ความท้าทายนี้ได้รับแรงบันดาลใจจากวิชาคณิตศาสตร์เป็นความจริง การเขียนโปรแกรมไม่ได้ สัญกรณ์คณิตศาสตร์สำหรับปัจจัยหรือความเป็นจริง!เป็นเครื่องหมายอัศเจรีย์ เครื่องหมายอัศเจรีย์ยังเป็นสัญลักษณ์ทั่วไปสำหรับnotภาษาการเขียนโปรแกรมจำนวนมาก ท้าทาย: ใช้สตริงที่มีตัวเลขและตัวอักษร: + !เป็นอินพุตและเอาต์พุตต่อไปนี้: ทุกสิ่งที่อยู่ข้างหน้าเครื่องหมายอัศเจรีย์ควรได้รับการประเมินว่าเป็นนิพจน์ทางคณิตศาสตร์ดังนั้น2+2ควรเป็น4จะ ทุกอย่างหลังจากเครื่องหมายอัศเจรีย์ควรจะผนวกเข้ากับอุปกรณ์เสริมที่อยู่ข้างหน้ามันดังนั้น: 2+2!5ควรให้45เพราะ2+2=4และ5เป็นอุปกรณ์เสริม ควรให้2+2!5+5410 ตั้งแต่!ยังหมายถึงnotอะไรที่ไม่ได้เป็นอุปกรณ์เสริมหลังจากที่ความจริงควรจะไม่ได้ถูกผนวก ดังนั้น2+2!!5ควรให้4เนื่องจาก5ไม่ใช่อุปกรณ์เสริม ตอนนี้not(not(true))==trueจึงควรให้2+2!!!5 ควรให้: เพราะแล้วตามด้วยปัจจัยและ คนแรกไม่ใช่ความจริง แต่เป็นเครื่องหมายอัศเจรีย์อีกอันหนึ่งดังนั้นจึงเป็นเรื่องจริงอีกครั้ง452+2!!5!5+54102+2=4!5!5+555+5 ชี้แจง: เครื่องหมายอัศเจรีย์จะไม่ติดกับ a +กับด้านใดด้านหนึ่ง จะไม่นำ+ตัวเลข (มัน5ไม่ใช่+5) !คุณอาจเลือกที่จะรวมศูนย์นำถ้าว่าเป็นผลมาจากการแสดงออกในด้านหน้าของครั้งแรก ทั้ง4และ04เป็นที่ยอมรับเอาต์พุตสำหรับอินพุต:0+0!4 บทสรุปผู้บริหาร:ประเมินผลรวมแต่ละรายการ (ถือว่า!เป็นตัวคั่น) จากนั้นทิ้งหมายเลขทั้งหมดที่ปรากฏหลังจำนวนคู่!(นับจากจุดเริ่มต้นของสตริง) จากนั้นลบทั้งหมด!แล้วเอาทั้งหมด กรณีทดสอบ: ! <- Empty string 5 5 12! 12 !87 87 !!5 <- Empty string 5+5!2+2 104 5+5!!2+2 10 …
10 code-golf 

18
ปัดเศษสตริง
ตัวเลขทศนิยมบางตัวไม่สามารถแสดงอย่างแม่นยำว่าเป็นเลขฐานสองแบบลอยตัวเนื่องจากเป็นตัวแทนภายในของเลขฐานสองแบบลอยตัว ตัวอย่างเช่น: การปัดเศษ 14.225 ถึงสองหลักทศนิยมไม่ได้ส่งผลให้เกิด 14.23 เนื่องจากอาจมีหนึ่งใน 14.22 งูหลาม : In: round(14.225, 2) Out: 14.22 อย่างไรก็ตามสมมติว่าเรามีการแทนค่าสตริงของ 14.225 เป็น '14 .225 'เราควรจะสามารถบรรลุการปัดเศษ '14 .23' ที่ต้องการในการแทนค่าสตริงได้ วิธีการนี้สามารถกำหนดให้เป็นความแม่นยำโดยพลการ Python 2/3 วิธีแก้ปัญหาที่เป็นไปได้ import sys def round_string(string, precision): assert(int(precision) >= 0) float(string) decimal_point = string.find('.') if decimal_point == -1: if precision == 0: return string …

4
แสดง nondeterminism ที่เป็นผลมาจากตัวกำหนดเวลาเธรด OS
ดังที่เราทราบกันดีว่าระบบปฏิบัติการที่ทันสมัยมีตัวจัดกำหนดการเธรดที่สามารถเลือกคำสั่งที่แตกต่างกันเพื่อกำหนดเวลาเธรดของคุณตามตรรกะภายในซึ่งรหัสของคุณไม่เป็นส่วนตัว โดยปกติแล้วคุณจะต้องออกแบบโค้ดแบบมัลติเธรดของคุณเพื่อให้แน่ใจว่าสิ่งที่ไม่คาดฝันนี้กำหนดไว้กับคุณจะไม่ส่งผลกระทบต่อผลลัพธ์ของคุณอย่างมีความหมาย เป้าหมายที่นี่ตรงกันข้าม สร้างโปรแกรมที่พิมพ์จำนวนเต็มในช่วงเวลา [0,99] แต่ในลำดับที่จะแตกต่างจากการรันเพื่อรันเนื่องจากตัวกำหนดตารางเวลาเธรด OS คุณต้องได้ "nondeterminism ที่เพียงพอ" ซึ่งนิยามไว้เป็น: ใน 10 ชุดตามลำดับของการทดลอง 10 ครั้งโปรแกรมของคุณจะต้องผลิตอย่างน้อย 9 พีชคณิตที่ไม่ซ้ำกันในแต่ละการทดลอง คุณอาจมีจำนวนชุดการทดลองที่ล้มเหลวในจำนวนที่เหมาะสมทั้งสองด้านของ 10 ติดต่อกันซึ่งประสบความสำเร็จ หรือหากต้องการกล่าวอีกวิธีหนึ่งคุณต้องใช้ 100 โปรแกรมของคุณซึ่งแต่ละบล็อกของการรัน 10 ครั้งมีการรันที่มากที่สุดสองรายการซึ่งให้ผลลัพธ์เหมือนกัน ดังนั้นการสลับ 98 และ 99 จะไม่ตัด นี่คือรหัสกอล์ฟดังนั้นคำตอบที่ใช้จำนวนไบต์น้อยที่สุดชนะ ข้อปลีกย่อย เขียนเอาต์พุตของคุณไปยัง stdout หนึ่งรายการต่อบรรทัด หากคุณรวมรูปแบบโดยให้ตัวอักษรสองตัวแทรกสอดระหว่างหัวข้อไปยัง stdout (แม้บางครั้ง) ทำให้เกิดสิ่งต่าง ๆ เช่นตัวเลขสามหลักหรือบรรทัดว่างผลลัพธ์ของคุณไม่ถูกต้อง ข้อยกเว้นสำหรับกฎข้างต้นคือคุณสามารถปล่อยบรรทัดว่างเปล่าบรรทัดเดียวหลังจากพิมพ์หมายเลขที่ต้องการล่าสุด (ยินดีต้อนรับ) หากคุณพลาดหรือทำซ้ำค่าที่ต้องการผลลัพธ์ของคุณจะไม่ถูกต้อง โปรแกรมของคุณไม่จำเป็นต้องเป็น nondeterministic บนตัวประมวลผลหลักเดียว โปรแกรมของคุณอาจใช้กรีนเธรด / …

8
พีระมิดแห่งสายขาด
รับสตริง n สร้างปิรามิดของสตริงแยกเป็นส่วน ๆ เทียบกับแถวปัจจุบัน แถวแรกมีสตริงที่ไม่ได้แก้ไข แถวที่สองมีสตริงที่แบ่งออกเป็นครึ่งโดยไพพ์ แถวที่สามแยกเป็นสาม ... และอื่น ๆ ความยาวของแต่ละสตริงย่อยโดยที่ l คือความยาวของสตริง n เท่ากับ ชั้น (L / N) อักขระที่เหลือจะใส่ในสตริงย่อยของตนเอง แถวสุดท้ายที่ใช้คือแถวแรกที่มีความยาว 2 กรณีทดสอบ: อินพุต: สวัสดีโลก เอาท์พุท: Hello, world. Hello,| world|. Hell|o, w|orld|. Hel|lo,| wo|rld|. He|ll|o,| w|or|ld|. อินพุต: abcdefghij เอาท์พุท: abcdefghij abcde|fghij abc|def|ghi|j ab|cd|ef|gh|ij อินพุต: 01234567890abcdef เอาท์พุท: 01234567890abcdef 01234567|890abcde|f 01234|56789|0abcd|ef …
10 code-golf  string 

2
การรับรู้ตำแหน่ง
การรับรู้ตำแหน่ง งานของคุณคือการสร้างโปรแกรมที่สำหรับการเปลี่ยนแปลงตัวละครทุกตัว (ซึ่งรวมถึงโปรแกรมต้นฉบับ) ผลลัพธ์ของตำแหน่งของตัวละครทุกตัวที่สัมพันธ์กับโปรแกรมต้นฉบับ หากโปรแกรมของคุณคือ Derp คุณต้องส่งออก [0, 1, 2, 3] (หรือเทียบเท่าบางส่วน) นี้เป็นเพราะDอยู่ใน0ตำแหน่ง, th eอยู่ใน1St, การวิจัย2ครั้งและถp3 ลองอีกโปรแกรมหนึ่งซึ่งเป็นโปรแกรมดั้งเดิม แต่ด้วยตัวอักษรที่อนุญาต: epDr คุณต้องส่งออก [1, 3, 0, 2] เพราะeอยู่ใน1ตำแหน่ง ST ของโปรแกรมเดิมที่pอยู่ใน3ตำแหน่งถ, th และครั้งD0r2 หากโปรแกรมดั้งเดิมมีอักขระซ้ำสองตัว: abcda -> [0, 1, 2, 3, 4] จากนั้นสำหรับการเรียงสับเปลี่ยน, 0และ4ในแถวลำดับจะต้องเรียงลำดับจากน้อยไปมาก: baadc -> [1, 0, 4, 3, 2] (0 first, then 4) …

5
ค้นหาการแสดงตัวเลขที่สั้นที่สุดใน Modular SNUSP
พื้นหลัง ภาษาโปรแกรมลึกลับหลายภาษาไม่มีตัวเลขในตัวดังนั้นคุณต้องคำนวณมันในขณะใช้งานจริง และในหลายกรณีเหล่านี้การแสดงตัวเลขอาจน่าสนใจทีเดียว เรามีความท้าทายเกี่ยวกับการแสดงตัวเลขสำหรับ Underload ความท้าทายนี้เป็นเรื่องเกี่ยวกับที่เป็นตัวแทนของตัวเลขในModular SNUSP (โปรดทราบว่าคุณไม่จำเป็นต้องเรียนรู้ SNUSP เพื่อให้การท้าทายนี้เสร็จสมบูรณ์ - ข้อมูลทั้งหมดที่คุณต้องการอยู่ในข้อกำหนด - แต่คุณอาจพบว่าพื้นหลังน่าสนใจ) งาน สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นจำนวน Modular SNUSP คือสตริงที่เกิดขึ้นจากตัวละคร@, +และ=ยกเว้นว่าตัวอักษรตัวสุดท้ายเป็น#และที่ตัวละครสุดท้ายจะต้องเป็น+หรือ=(มันไม่สามารถเป็น@) ยกตัวอย่างเช่นตัวเลขที่ถูกต้อง ได้แก่@+#, ==#และ@@+@=#; ตัวอย่างของตัวเลขที่ไม่ถูกต้อง ได้แก่+=, และ@@#+?+# ค่าของหมายเลข Modular SNUSP ถูกคำนวณแบบเรียกซ้ำดังนี้: # มีค่าเป็น 0 (นี่คือกรณีพื้นฐาน) ถ้าตัวเลขมีรูปแบบ=xสำหรับสตริงมูลค่าเท่ากับมูลค่าของxx หากตัวเลขมีรูปแบบ+xสำหรับสตริงใด ๆxค่าของมันจะเท่ากับค่าของxบวก 1 ถ้าตัวเลขมีแบบฟอร์ม@cxสำหรับอักขระตัวเดียวcและสตริงxมูลค่าเท่ากับมูลค่าของแถมมูลค่าของxcx สำหรับความท้าทายนี้คุณต้องเขียนโปรแกรมที่ใช้จำนวนเต็มไม่ใช่ค่าลบเป็นอินพุตและเอาต์พุตสตริงที่เป็นหมายเลข Modular SNUSP ที่สั้นที่สุดที่เป็นไปได้ที่มีค่าเท่ากับอินพุต ชี้แจง เป็นไปได้ทั้งหมดที่จะมีมากกว่าหนึ่งสตริงที่มีค่าเท่ากันและโดยเฉพาะอย่างยิ่งสำหรับจำนวนเต็มบางตัวจะมีการผูกสำหรับหมายเลข Modular SNUSP ที่สั้นที่สุดด้วยค่านั้น ในกรณีเช่นนี้คุณสามารถส่งออกตัวเลขใด ๆ …
10 code-golf  number 

12
จับคู่พิกัดกับค่าของพวกเขา
กำหนด 3 รายการอินพุตรายการคู่ประสานงานสตริง 2D และสตริงอักขระเดี่ยวเอาท์พุทไม่ว่าอักขระในแต่ละพิกัดของสตริง 2D จะเท่ากับอักขระเดียว คุณสามารถรับอินพุตในลำดับใดก็ได้และพิกัดอาจมีดัชนี 1 ชุด คุณอาจใช้สตริง 2D เป็นรายการ 2D รายการของบรรทัดหรือสตริง 2D ตัวอย่าง: (0,0), "#_\n__", "#" -> True สตริงนั้นคือ #_ __ ถ่านที่พิกัด(0,0)(จากซ้ายด้านบน) #เป็น นี่เท่ากับรายการอินพุตที่สาม#ดังนั้นคุณจึงเอาท์พุทTrue(หรือค่าจริงใด ๆ ) ตัวอย่าง: [(0,0), (1,1)], "#_\n_#", "#" -> True สตริงนั้นคือ #_ _# อักขระที่พิกัด(0,0)และ(1,1)มีทั้งคู่#ดังนั้นผลลัพธ์จะเป็นจริง เอาต์พุตจะเป็นจริงถ้า iff ทุกพิกัดตรงกับแฮช ไม่แฮชทุกคนจะต้องมีพิกัดที่ตรงกัน หากไม่มีการเกิดของถ่านเดี่ยว (#ในบางกรณีทดสอบ) ในสตริง 2D ผลลัพธ์จะยังคงเป็นเท็จ …

5
กำหนดตัวเลือกการควบคุมความเร็วที่ดีที่สุด
ระบบควบคุมความเร็วคงที่มี 3 ตัวเลือกในการย้ายที่จับเพื่อตั้งค่าความเร็วที่คุณต้องการขับด้วย สู่คุณ: เพิ่มความเร็ว 1 ระดับ ขึ้นด้านบน: เพิ่มความเร็วเป็นทวีคูณถัดไปของ 10 (เช่น 20 -> 30, 32 -> 40) ลดลง: ลดความเร็วลงเป็นทวีคูณถัดไปของ 10 (เช่น 20 -> 10, 32 -> 30) อินพุต 2 จำนวนเต็ม: อันแรกคือความเร็วเริ่มต้นและอันที่สองคือความเร็วที่คุณต้องการทั้งแบบไม่เป็นลบและในรูปแบบใด ๆ ที่คุณต้องการ (อาเรย์สองอาร์กิวเมนต์ ฯลฯ ) งาน กำหนดวิธีที่เหมาะสมที่สุดในการใช้ที่จับเพื่อให้ได้ความเร็วตามที่ต้องการและพิมพ์การเคลื่อนไหวตามลำดับที่ถูกต้อง กฎระเบียบ หากคุณมีตัวเลือกระหว่างการดึงเข้าหาตัวคุณและไปด้านบน (เช่นจาก 39 ถึง 40) คุณสามารถเลือกตัวเลือกใดตัวเลือกหนึ่ง แต่อยู่กับสิ่งที่คุณเลือกสำหรับกรณีที่คล้ายกัน คุณสามารถใช้สัญลักษณ์ 3 แบบ (มองเห็นได้ดีกว่า) …

4
สร้าง ASCII Hexagon Ring Tiling
การใช้ ASCII พิมพ์ส่วนของการเรียงแหวนวงแหวนหกเหลี่ยม นี่คือส่วนเล็ก ๆ : /\__/\ /_/ \_\ /\__/\ \__/ /\__/\ /_/ \_\/__\/_/ \_\ \ \__/ /\__/\ \__/ / \/__\/_/ \_\/__\/ /\__/\ \__/ /\__/\ /_/ \_\/__\/_/ \_\ \ \__/ /\__/\ \__/ / \/__\/_/ \_\/__\/ \ \__/ / \/__\/ นี่คือส่วนที่ใหญ่กว่า: \ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \__/ /\__/\ \/__\/_/ …

3
ค้นหา pangrams ที่สั้นที่สุดจากรายการคำ
แกรมคือสตริงที่มีทุกตัวอักษรa- zภาษาอังกฤษอักษรกรณีตาย (มันก็โอเคถ้า pangram มีมากกว่าหนึ่งสำเนาของตัวอักษรหรือถ้ามันมีตัวอักษรที่ไม่ใช่ตัวอักษรนอกเหนือจากตัวอักษร) เขียนโปรแกรมหรือฟังก์ชั่นซึ่งอินพุตเป็นรายการของสตริงและเอาต์พุตหนึ่งหรือมากกว่าหนึ่งสตริงที่มีคุณสมบัติดังต่อไปนี้: สตริงเอาต์พุตแต่ละรายการต้องเป็น pangram แต่ละสตริงเอาต์พุตต้องถูกจัดรูปแบบโดยการต่อหนึ่งสตริงขึ้นไปจากรายการอินพุตคั่นด้วยช่องว่าง แต่ละสตริงเอาต์พุตต้องสั้นที่สุดหรือผูกให้สั้นที่สุดในบรรดาสตริงทั้งหมดที่มีคุณสมบัติเหล่านี้ หลายโปรแกรมจะเลือกที่จะส่งออกเพียงหนึ่งสาย; คุณเพียงแค่ต้องการส่งออกมากกว่าหนึ่งสายถ้าคุณต้องเขียนโค้ดพิเศษเพื่อ จำกัด การส่งออก คุณอาจคิดว่าอินพุตไม่มีอักขระหรือช่องว่างที่ไม่สามารถพิมพ์ได้และไม่มีคำใดในนั้นเกินกว่า 26 เท่าของลอการิทึมธรรมชาติของความยาวของรายการ) อักขระ (อย่างไรก็ตามคุณไม่สามารถสันนิษฐานได้ว่าอินพุตนั้นไม่มีอะไรนอกจากตัวอักษรหรืออักษรตัวพิมพ์เล็กเท่านั้นเครื่องหมายวรรคตอนและตัวพิมพ์ใหญ่เป็นไปได้ทั้งหมด) อินพุตและเอาต์พุตสามารถกำหนดในรูปแบบที่เหมาะสม สำหรับการทดสอบโปรแกรมของคุณฉันขอแนะนำให้ใช้สองกรณีทดสอบ: พจนานุกรมคำศัพท์ภาษาอังกฤษ (คอมพิวเตอร์ส่วนใหญ่มีหนึ่งกรณี) และกรณีต่อไปนี้ (ซึ่ง pangram ที่สมบูรณ์แบบ (26 ตัวอักษร) เป็นไปไม่ได้ดังนั้นคุณจะต้องค้นหา มีตัวอักษรซ้ำซ้อน): abcdefghi defghijkl ijklmnop lmnopqrs opqrstuvw rstuvwxyz คุณควรรวมตัวอย่างผลลัพธ์ของโปรแกรมพร้อมกับการส่งของคุณ (สิ่งนี้อาจแตกต่างกันไปสำหรับคนอื่นเนื่องจากการใช้รายการคำที่แตกต่างกัน) เงื่อนไขชัยชนะ นี่เป็นความ ท้าทายที่ซับซ้อนของรหัส - กอล์ฟ ผู้ชนะคือโปรแกรมที่สั้นที่สุด (ไบต์) ที่วิ่งในเวลาพหุนาม (สรุปสำหรับผู้ที่ไม่ทราบความหมาย: ถ้าคุณเพิ่มขนาดของรายการคำสองเท่าโปรแกรมควรช้าลงโดยไม่เกินค่าคงที่อย่างไรก็ตามปัจจัยคงที่ในคำถามอาจมีขนาดใหญ่เท่ากับคุณ เช่น. …

5
นั่นเป็นภูเขาที่แปลกประหลาดอย่างหนึ่ง!
แรงบันดาลใจจากแสดงโซ่เล็ก ๆ ของภูเขาที่มีเลขคี่อยู่ด้านบนของมัน! โดย@sygmei ทำไมต้องมีลูกโซ่ของภูเขาเมื่อคุณมีลูกอันมหึมา? จัดทำโปรแกรมที่ใช้หมายเลขอินพุทและพิมพ์ภูเขาที่มีเลขคี่ทุกตัวให้เป็นหมายเลขอินพุท (ที่ "ทางตะวันตกเฉียงใต้" หมายถึงdirectly below and to the leftและ "ทางตะวันออกเฉียงใต้" หมายถึงdirectly below and to the right) ทุกหมายเลขจะมี/ทิศตะวันตกเฉียงใต้ของมันและ\ตะวันออกเฉียงใต้ มันเริ่มต้นจาก1ด้านบนและหมายเลขถัดไปจะไปทางตะวันตกเฉียงใต้ของหรือทางตะวันออกเฉียงใต้ของ/ \หมายเลขถัดไปจะอยู่ในบรรทัดที่ใกล้กับด้านบนและไปทางซ้ายมากที่สุด สำหรับหมายเลข multidigit เพียงตัวเลขที่ 1 ต้องอยู่ในตำแหน่งที่ถูกต้องกับตัวเลขอื่น ๆ โดยตรงหลังจากนั้นและมีเพียงตัวเลขแรกเท่านั้นที่ควรมี\และ/ออกมาจากมัน ภูเขาถึง 1 หรือ 2 เป็นเพียง: 1 / \ ภูเขาถึง 3 หรือ 4 เป็นเพียง: 1 / \ 3 / \ …

4
กล่อง XY ขอบ Bouncey ที่มีเครื่องหมายที่ Z
lurker นานมากโปสเตอร์ครั้งแรกที่นี่ เขียนโปรแกรมที่มี 3 อินพุต: X, Y และ Z X = ข้าม (คอลัมน์) Y = ลง (แถว) Z = เครื่องหมายบอกตำแหน่ง โปรแกรมควรพิมพ์กริด visual X ข้ามและ Y ลง กริดนี้สามารถสร้างตัวละครใดก็ได้ยกเว้น "+" 'สถานที่ตั้ง' แต่ละแห่งจะได้รับหมายเลขดัชนีนับจาก1ที่พิกัด 1, 1 ข้ามและจากนั้นลงไปจนถึงจุดสิ้นสุด X และ Y จะต้องมีอย่างน้อย 3 เสมอและ Z จะไม่มีวันยิ่งใหญ่กว่าX * Yนี้ Z จะแสดงตำแหน่งที่พิมพ์เป็น "+" บนตำแหน่งรวมทั้งตัวอักษรซ้ายขวาขึ้นและลง 1 ตัว ตัวอย่างเช่น: …

4
คำนวณเมทริกซ์ความหนาแน่นปริมณฑล
บทนำ หนาแน่นมดลูกปริมณฑลเป็นอนันต์เมทริกซ์ไบนารีMกำหนดดังนี้ พิจารณา (1-based) ดัชนี(x, y)และแสดงว่าโดยM [x, y]สี่เหลี่ยมย่อยเมทริกซ์ทอดมุม(1, 1)และ(x, y) สมมติว่าค่าทั้งหมดของM [x, y]ยกเว้นM x, y , ค่าที่ดัชนี(x, y)ได้ถูกกำหนดแล้ว แล้วค่าM x, yเป็นแล้วแต่จำนวนใดของ0หรือ1ที่ทำให้ค่าเฉลี่ยของM [x, y]ใกล้ชิดกับ1 / (x + y) ในกรณีที่เสมอกันให้เลือกMx, y = 1 นี่คือ sub-matrix M [20, 20]ด้วยค่าศูนย์แทนที่ด้วยจุดเพื่อความชัดเจน: 1 . . . . . . . . . . . . . …
10 code-golf  matrix 

5
มีความหมายมากน้อยแค่ไหน?
กำหนดตัวเลขเป็นอินพุตพิจารณาจำนวนที่มีนัยสำคัญ หมายเลขนี้จะถูกนำมาเป็นสตริงเนื่องจากคุณต้องทำการจัดรูปแบบพิเศษบางอย่าง คุณจะเห็นสิ่งที่ฉันหมายถึงเร็ว ๆ นี้ (ฉันคิดว่า) ตัวเลขเป็นรูป sig-fig หากมีอย่างน้อยหนึ่งอย่างต่อไปนี้: ตัวเลขที่ไม่ใช่ศูนย์มีความสำคัญเสมอ เลขศูนย์ใด ๆ ระหว่างเลขนัยสำคัญสองหลักนั้นมีนัยสำคัญ ศูนย์สุดท้ายหรือศูนย์ต่อท้ายในส่วนทศนิยมเท่านั้นที่มีความสำคัญ ตัวเลขทั้งหมดมีความสำคัญหากไม่มีสิ่งใดตามทศนิยม เมื่อมีศูนย์เป็นศูนย์ทั้งหมด แต่ศูนย์สุดท้ายจะถือเป็นศูนย์นำหน้า อินพุต สตริงหรืออาร์เรย์สตริงของตัวเลข มันอาจมีจุดทศนิยมในตอนท้ายโดยไม่มีตัวเลขหลังจากนั้น มันอาจจะไม่มีจุดทศนิยมเลย เอาท์พุต มีกี่รูปซิกซิก ตัวอย่าง 1.240 -> 4 0. -> 1 83900 -> 3 83900.0 -> 6 0.025 -> 2 0.0250 -> 3 2.5 -> 2 970. -> 3 0.00 -> …
10 code-golf  string  math 

2
วันหนึ่งที่การแข่งม้า
พื้นหลัง ย้อนกลับไปในช่วงปลายยุค 90/00 แรกเมื่อ Flash Web Design เจ๋งมากจนไม่มีใครสามารถมีชีวิตอยู่ได้โดยไม่ต้องมีเว็บไซต์ Flash ที่สมบูรณ์หรืออย่างน้อยก็เป็นวิดเจ็ตอนิเมชั่นฉันได้รับการว่าจ้างให้พัฒนา ในรูปของแอนิเมชั่นสไตล์วิดีโอเกมยุค 80 ดังนั้นผู้เข้าชมเว็บไซต์ไม่เพียง แต่สามารถอ่านผลการแข่งขันได้เท่านั้น แต่พวกเขายังสามารถดูได้ในแอนิเมชั่นที่เคลื่อนไหว! ว้าว! ที่น่าประทับใจ! พวกเขาให้ไฟล์ CSV พร้อมรายละเอียดการแข่งขันทั้งหมด: ลำดับเริ่มต้นและชื่อม้าชื่อผู้ขับขี่รางวัลและอื่น ๆ แอพ Flash ของฉันอ่านไฟล์นั้นสำหรับการแข่งขันแต่ละครั้งและแสดงภาพเคลื่อนไหวดังกล่าวข้างต้น ทุกวันนี้การสนับสนุน Flash ลดลงอย่างมากดังนั้นเราต้องเปลี่ยนกลับเป็นASCII-art ! งาน งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบที่อ่านข้อมูลการแข่งขันในรูปแบบ CSV จากอินพุตมาตรฐานและส่งออกการแสดง ASCII-art ของการแข่งขันดังที่แสดงในตัวอย่างด้านล่าง INPUT ข้อมูล CSV พร้อม 2 ฟิลด์: 1) เริ่มสั่งซื้อ; 2) เวลาถึงที่ Finish ในรูปแบบ1.13.4(1 นาที, 13 วินาที, …

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