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

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

7
จำกัด การเอียงในหนึ่งมิติ
จุดประสงค์ของการท้าทายนี้คือการพิจารณาว่าสามารถรวบรวมกระเบื้องชิ้นเดียวหนึ่งมิติเพื่อสร้างชิ้นต่อเนื่องที่ จำกัด ได้หรือไม่ ชิ้นเป็นไม่ว่างเปล่าลำดับ จำกัด ของศูนย์และคนที่จะเริ่มต้นและจบลงด้วยการอย่างใดอย่างหนึ่ง บางชิ้นที่เป็นไปได้1, 101, ,11111100101 การปูกระเบื้องหมายถึงการจัดเรียงชิ้นส่วนเพื่อให้เกิดบล็อกที่ต่อเนื่องกันหนึ่งอัน ชิ้นหนึ่งจากหนึ่งสามารถครอบครองสถานที่ของศูนย์ แต่ไม่ของหนึ่งจากชิ้นอื่น ถ้าเรามองว่าวัตถุหนึ่งเป็น "วัสดุแข็ง" และศูนย์เป็น "หลุม" ชิ้นควรจะพอดีเพื่อที่จะยืดเดียวโดยไม่ต้องออกจากหลุมใด ๆ ในการสร้างแบบเรียงต่อกันชิ้นส่วนสามารถเลื่อนตามพื้นที่หนึ่งมิติของพวกเขาเท่านั้น (ไม่สามารถแยกหรือสะท้อนได้) แต่ละชิ้นจะใช้งานเพียงครั้งเดียว ตัวอย่าง ทั้งสามชิ้น101, 11, 101สามารถกระเบื้องดังแสดงในต่อไปนี้ซึ่งแต่ละชิ้นเป็นตัวแทนที่มีการเปลี่ยนแปลงที่จำเป็น: 101 11 101 ดังนั้นการปูกระเบื้องที่ได้รับคือ 111111 เป็นตัวอย่างที่สองชิ้น11011และ1001101ไม่สามารถปูกระเบื้อง โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลง 11011 1001101 ไม่ถูกต้องเพราะมีสองคนที่ปะทะกัน; และ 11011 1001101 ไม่ถูกต้องเนื่องจากผลลัพธ์จะมีศูนย์ กฎเพิ่มเติม การป้อนข้อมูลเป็นชุดของหนึ่งหรือมากกว่าหนึ่งชิ้น อนุญาตรูปแบบที่เหมาะสม ตัวอย่างเช่น: รายการสตริงที่แต่ละสตริงสามารถมีอักขระที่สอดคล้องกันสองตัวที่ต่างกัน; หลายอาร์เรย์ที่แต่ละอาร์เรย์มีตำแหน่งของชิ้นส่วน รายการของจำนวนเต็ม (คี่) เช่นการเป็นตัวแทนไบนารีของแต่ละหมายเลขกำหนดชิ้นส่วน ส่งออกควรจะเป็นค่า truthy …

23
เดรัจฉานบังคับสวิตช์บอร์ด
เมื่อวันก่อนทีมของเราไปที่ห้องหลบหนี หนึ่งในปริศนาที่เกี่ยวข้องกับสวิทช์ทางกลหกตัวที่คุณต้องหาชุดที่ถูกต้องของการเปิดและปิดเพื่อปลดล็อคกล่องค่อนข้างเช่นนี้: -v-v-v- -v-v-v- ในฐานะนักพัฒนาเราจึงตัดสินใจว่าจะมีประสิทธิภาพมากขึ้นในการลองชุดค่าผสม 2 ^ 6 = 64 หนึ่งชุดมากกว่าที่จะไขปริศนาได้ ดังนั้นเราจึงมอบหมายให้คนจนบางคนทำการนับเลขฐานสอง: -v-v-v- -v-v-v- -v-v-v- -v-v-^- -v-v-v- -v-^-v- -v-v-v- -v-^-^- และอื่น ๆ ความท้าทาย เขียนโปรแกรมที่ให้สวิตช์ทั้งหมดอยู่ในตำแหน่งปิดเป็นสตริงที่จัดรูปแบบตามด้านบนจะสร้างชุดค่าผสมทั้งหมดของการเปิดและปิดในลำดับใด ๆ คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น ดังนั้นโปรแกรมของคุณสามารถรับอินพุตผ่าน stdin ไฟล์หรือเป็นอาร์กิวเมนต์สตริงเดี่ยวและส่งคืนหรือพิมพ์เอาต์พุต หากส่งคืนผลลัพธ์อาจอยู่ในรายการ / array / etc มากกว่าสตริงเดียว หากเอาต์พุตเป็นสตริงเดี่ยวบอร์ดควรคั่นด้วยบรรทัดใหม่ (อนุญาตให้ขึ้นบรรทัดใหม่ได้) สตริงอินพุตจะตรงกับ regex r'((-v)+-)(\n(-v)+-)*'และเป็นตัวแทนหนึ่งบอร์ดที่ปิดสวิตช์ทั้งหมด ซึ่งหมายความว่าไม่มีกรณีใดเป็นศูนย์และสวิตช์จะจัดชิดซ้าย แต่ละแถวอาจไม่มีสวิตช์จำนวนเท่ากัน บอร์ดเอาต์พุตแต่ละอันควรมีรูปแบบเดียวกันกับอินพุตยกเว้นว่าวีอาจถูกแทนที่ด้วย ^ ตามที่ต้องการ บอร์ดเอาต์พุตสามารถคั่นด้วยจำนวนบรรทัดใหม่ใด ๆ เนื่องจากรันไทม์นั้นเป็นไปตามธรรมชาติ O (2 …

14
เทปวงกลมน่าตื่นเต้นไหม?
อนุพันธ์ Brainfuck มานิยามภาษาโปรแกรมง่ายๆเหมือนBrainfuckกัน มันมีเทปสองทิศทางของเซลล์และแต่ละเซลล์เก็บหนึ่งบิต บิตทั้งหมดเป็น 0 เริ่มแรกมีหัวที่เคลื่อนที่อยู่บนเทปเริ่มต้นที่ตำแหน่ง 0 โปรแกรมคือสตริงที่อยู่เหนืออักขระ<>01!เรียกใช้จากซ้ายไปขวาด้วยซีแมนทิกส์ต่อไปนี้: < ย้ายหัวหนึ่งก้าวไปทางซ้าย > ย้ายหัวหนึ่งก้าวไปทางขวา 0 ใส่ 0 ในเซลล์ปัจจุบัน 1 ใส่ 1 ในเซลล์ปัจจุบัน ! พลิกเซลล์ปัจจุบัน ไม่มีลูปดังนั้นโปรแกรมของอักขระnจะยุติหลังจากnขั้นตอนทั้งหมด โปรแกรมน่าเบื่อถ้าเซลล์ทั้งหมดมี 0 เมื่อสิ้นสุดการดำเนินการและน่าตื่นเต้นถ้ามีอย่างน้อยหนึ่ง 1 โปรดทราบว่าขนาดของเทปไม่ได้ระบุไว้ดังนั้นขึ้นอยู่กับการนำไปใช้อาจเป็นอนันต์แบบสองทางหรือ กลม ตัวอย่างโปรแกรม 1>>>!<<<<0>!>>>!พิจารณาโปรแกรม บนเทปที่ไม่มีที่สิ้นสุดการดำเนินการจะเป็นดังนี้: v 00000000000000 Put 1 v 00000100000000 Move by >>> v 00000100000000 Flip v 00000100100000 Move by <<<< …

16
วิธีการกำหนดค่าช่วงเวลาต่าง ๆ
หนึ่งในคำจำกัดความที่ฉันชื่นชอบของตัวเลขที่สำคัญไปดังนี้: 2 เป็นนายกที่เล็กที่สุด ตัวเลขที่มีขนาดใหญ่กว่า 2 นั้นเป็นจำนวนเฉพาะถ้าพวกเขาไม่สามารถหารด้วยจำนวนที่น้อยกว่าได้ อย่างไรก็ตามคำจำกัดความนี้ดูเผินๆทำไม 2 ทำไมไม่ใช้หมายเลขอื่นล่ะ? ลองมาดูตัวเลขอื่น ๆ หน่อยสิจะนิยาม n-prime แบบนั้น n เป็น n-prime ที่เล็กที่สุด ตัวเลขที่มีขนาดใหญ่กว่า n คือ n-prime หากพวกเขาไม่สามารถหารด้วย n-prime ที่เล็กกว่า งาน งานนี่คือการเขียนโปรแกรมที่จะใช้เวลาสองปัจจัยการผลิตเป็นจำนวนเต็มบวกnและเป็นจำนวนเต็มบวก จากนั้นจะตัดสินใจว่าaคือn -prime โปรแกรมของคุณควรแสดงค่าที่แตกต่างกันสองค่าสำหรับ "ใช่มันคือ n-prime" และอีกค่าสำหรับ "ไม่ใช่มันไม่ใช่ n-prime" นี่เป็นคำถามเกี่ยวกับการเขียนโค้ดดังนั้นคำตอบจะได้คะแนนเป็นไบต์โดยไบต์น้อยจะดีขึ้น การทดสอบ นี่คือรายการของ 31 งวดแรกสำหรับ n = 2 ถึง n = 12 (1 คือหมายเลข 1 …

9
ฉันต้องการกระดาษแข็งกี่หลัก?
ฉันต้องเตรียมตัวเลขที่ทำจากกระดาษแข็งเพื่อแสดงตัวเลข ( ตัวอย่าง ) ผมไม่ทราบว่าก่อนซึ่งจำนวนที่ฉันควรแสดง - nสิ่งเดียวที่ฉันรู้ก็คือว่ามันไม่เกิน ฉันควรเตรียมกระดาษแข็งกี่หลัก ตัวอย่าง: n = 50 ในการแสดงตัวเลขใด ๆ ในช่วง 0 ... 50 ฉันต้องการตัวเลขต่อไปนี้: ศูนย์สำหรับการแสดงหมายเลข 0 หรือหมายเลขรอบอื่น ๆ สำเนาสองชุดของตัวเลข 1, 2, 3 และ 4 เพื่อแสดงตัวเลขที่เกี่ยวข้อง สำเนาหนึ่งชุดของตัวเลข 5, 6, 7 และ 8 สำหรับกรณีที่ปรากฏเป็นเลขนัยสำคัญน้อยที่สุดในจำนวนนั้น ไม่จำเป็นต้องใช้เลข 9 เพราะฉันสามารถใช้เลข 6 กลับด้านแทนได้ รวม: 13 หลัก กรณีทดสอบ (แต่ละบรรทัดเป็นกรณีทดสอบในรูปแบบ "อินพุต; เอาท์พุท") 0 …
32 code-golf  number 

6
การค้นหางูในเมทริกซ์
ท้าทาย รับไบนารีเมทริกซ์และสตริงไบนารีพิจารณาว่าสตริงไบนารีนั้นสามารถพบได้เริ่มต้นที่จุดใด ๆ ในเมทริกซ์และเคลื่อนที่ไปในทิศทางใดก็ได้ ณ จุดใด ๆ ถัดมาเพื่อสร้างสตริงไบนารี นั่นคือสตริงสามารถถูกพับเก็บได้ แต่ภายในเมทริกซ์หรือไม่? สตริงสามารถพับที่ 90 องศาหรือ 180 องศา (การเชื่อมต่อขอบ; ระยะทางแมนฮัตตัน 1) และไม่สามารถทับซ้อนกันได้ทุกจุด ตัวอย่าง ลองมาตัวอย่างต่อไปนี้: Matrix: 010101 111011 011010 011011 Snake: 0111111100101 นี่เป็นกรณีทดสอบจริง เราสามารถเห็นงูถูกพับในตำแหน่งต่อไปนี้: 0-1 0 1 0 1 | 1 1 1-0 1 1 | | | | 0 1 1 0-1-0 | …

30
ตัวเลขในช่องทางของพวกเขา
การป้อนข้อมูล: รายการจำนวนเต็ม เอาท์พุท: ใส่ตัวเลขแต่ละตัว (และเครื่องหมายลบ) ในช่องทางของตัวเองตามลำดับ-0123456789โดยไม่สนใจตัวเลขที่ซ้ำกัน ตัวอย่าง: การป้อนข้อมูล: [1,729,4728510,-3832,748129321,89842,-938744,0,11111] เอาท์พุท: -0123456789 <- Added as clarification only, it's not part of the output 1 2 7 9 012 45 78 - 23 8 1234 789 2 4 89 - 34 789 0 1 กฏท้าทาย: ตัวเลขที่ซ้ำกันในจำนวนนั้นจะถูกละเว้น I / O สามารถอยู่ในรูปแบบที่เหมาะสม อินพุตสามารถเป็นรายการ / …

20
สแควร์ a Number My Way
ผู้คนต่างบอกฉันว่าจตุรัสของตัวเลขนั้นคือจำนวนคูณด้วยตัวมันเอง เห็นได้ชัดว่าเป็นเท็จ วิธีที่ถูกต้องในการจัดตารางจำนวนคือการทำให้มันเป็นสี่เหลี่ยมโดยการซ้อนมันไว้ด้านบนของตัวเองจำนวนครั้งเท่ากับจำนวนตัวเลขที่มีและจากนั้นอ่านตัวเลขทั้งหมดจากตารางผลลัพธ์ทั้งในแนวนอน (จาก จากซ้ายไปขวาเท่านั้น) และแนวตั้ง (จากบนลงล่างเท่านั้น) จากนั้นเพิ่มเข้าด้วยกัน ดังนั้นสำหรับหมายเลข 123 คุณต้องสร้างตารางก่อน: 123 123 123 จากนั้นคุณนำแถวและคอลัมน์ทั้งหมดออกจากสแควร์แล้วเพิ่มเข้าด้วยกัน: 123+123+123+111+222+333 ซึ่งให้ผลกับ1035เรา สำหรับตัวเลขลบคุณสแต็คตามปกติ (โปรดจำไว้ว่าคุณนับจำนวนหลักเท่านั้นดังนั้นเครื่องหมายลบจะไม่รวมอยู่ในความยาว) จากนั้นอ่านตัวเลขแนวนอนตามปกติ (พร้อมเครื่องหมายลบ) แล้วละเว้นสัญญาณลบสำหรับ ตัวเลขแนวตั้ง ดังนั้นสำหรับจำนวนที่-144เราได้รับตาราง: -144 -144 -144 ซึ่งให้เรา-144-144-144+111+444+444ซึ่งเท่ากับ567 สำหรับตัวเลขที่มีเพียงหนึ่งหลักสี่เหลี่ยมจะเท่ากับจำนวนสองเท่าเสมอ (อ่านครั้งเดียวในแนวนอนและแนวตั้งหนึ่งครั้ง) ดังนั้น4ให้เรา 4 ซึ่งจะช่วยให้เราซึ่งเท่ากับ 4+48 สำหรับตัวเลขที่มีส่วนทศนิยมให้ตั้งสแต็กตามปกติ (โปรดจำไว้ว่าเฉพาะตัวเลขที่นับในจำนวนครั้งที่คุณสแต็กจำนวนเท่านั้นดังนั้นจะไม่นับจำนวนทศนิยม) และละเว้นสัญลักษณ์ทศนิยมเมื่ออ่านตัวเลขแนวตั้ง ตัวอย่างเช่นจำนวน244.2ทำให้เรา 244.2 244.2 244.2 244.2 ซึ่งจะช่วยให้เราซึ่งเท่ากับ244.2+244.2+244.2+244.2+2222+4444+4444+222214308.8 เศษส่วนหรือจำนวนเชิงซ้อนไม่สามารถยกกำลังสอง งานของคุณ: ฉันเบื่อที่จะยกกำลังสองของตัวเลขด้วยมือของฉันดังนั้นฉันตัดสินใจที่จะทำให้กระบวนการเป็นไปโดยอัตโนมัติ เขียนโปรแกรมหรือฟังก์ชั่นที่รับค่าทศนิยมหรือสตริงตามที่คุณต้องการเป็นอินพุตและส่งกลับผลลัพธ์ของการยกกำลังสองในแบบของฉัน ตัวอย่าง: 123 -> …
32 code-golf  number 

13
รหัสใหญ่…สำหรับคุณ!
ในฉากเปิดของDark Knight Risesมีการพูดคุยที่ค่อนข้างงุ่มง่ามระหว่างตัวแทน CIA และ Bane จอมวายร้าย ตัวแทน CIA: “ ถ้าฉันดึง [หน้ากาก] ออกมาคุณจะตายไหม” สารพิษ: “ มันจะเจ็บปวดอย่างยิ่ง…” ตัวแทน CIA: “ คุณเป็นคนที่ใหญ่มาก” สารพิษ: “ …สำหรับคุณ” ไม่แน่ใจว่า Bane ตั้งใจที่จะพูดว่า "เจ็บปวดกับคุณ" หรือ "ผู้ชายตัวใหญ่สำหรับคุณ" มาแก้ไขปัญหานี้กันดีกว่าสำหรับการเล่นกอล์ฟรหัส! ท้าทาย งานของคุณคือเขียนโปรแกรมที่เรียงลำดับบทสนทนาข้างต้นขึ้นอยู่กับจำนวนเต็มที่ระบุเป็นอินพุต คำพูดของตัวแทน CIA คือ: If I pull that off will you die? You're a big guy. คำพูดของ Bane คือ: …
32 code-golf 

30
ตัวเลข n แรกโดยไม่มีเลขฐานสองเท่ากับกัน
ลำดับประกอบด้วยการแทนทศนิยมของตัวเลขฐานสองของรูปแบบ: 10101...ซึ่งคำ n-th มี n บิต ลำดับนั้นอาจอธิบายได้ง่ายที่สุดโดยเพียงแสดงความสัมพันธ์ระหว่างเลขฐานสองและเลขฐานสิบของตัวเลข: 0 -> 0 1 -> 1 10 -> 2 101 -> 5 1010 -> 10 10101 -> 21 101010 -> 42 ท้าทาย: ใช้จำนวนเต็มอินพุทnแล้วคืนค่าตัวเลข n ตัวแรกตามลำดับ คุณอาจเลือกที่จะเรียงลำดับดัชนี 0 หรือ 1 ดัชนี กรณีทดสอบ: n = 1 <- 1-indexed 0 n = 18 0, 1, 2, …

30
การประมูลที่ปิดผนึกราคาแรก
ผลสุดท้าย การแข่งขันสิ้นสุดแล้ว ขอแสดงความยินดีด้วยhard_coded! ข้อเท็จจริงที่น่าสนใจ: ในการประมูล 31600 จาก 40920 การประมูล (77.2%) ผู้ชนะรอบแรกชนะการประมูลมากที่สุดในรอบนั้น หากบอทตัวอย่างถูกรวมอยู่ในการแข่งขันเก้าอันดับแรกจะไม่เปลี่ยนแปลงยกเว้นว่าAverageMineและheuristจะสลับตำแหน่งของพวกเขา ผลลัพธ์ 10 อันดับแรกของการประมูล: [2, 2, 3, 3] 16637 [0, 3, 3, 4] 7186 [1, 3, 3, 3] 6217 [1, 2, 3, 4] 4561 [0, 1, 4, 5] 1148 [0, 2, 4, 4] 1111 [2, 2, 2, 4] 765 …

1
สร้างรหัส Pyramid Scheme
พีระมิดเป็นภาษาที่ถูกพัฒนาโดย@ ConorO'Brien ใน Pyramid Scheme โค้ดที่คุณเขียนมีลักษณะดังนี้: ^ ^ / \ /3\ / \ --- / + \ ^-------^ /9\ /3\ /123\ --- ----- ตอนนี้รหัสนั้นมีคุณสมบัติที่ชัดเจนสองประการ: มันยากที่จะแยกวิเคราะห์และยากที่จะเขียน Conor ได้แก้ไขปัญหาแรกแล้วอย่างไรก็ตามงานของคุณคือการแก้ไขปัญหาที่สอง โค้ดด้านบนนั้นประมวลผลโดยตัวแปล PyramidScheme ไปเป็นอาร์เรย์สตริงที่ซ้อนกันเช่นนี้ [["+", ["9123", "3"]], "3"] งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นซึ่งกำหนดสตริงที่ซ้อนกันเอาต์พุตหรือส่งคืนรหัส PyramidScheme ที่สร้างขึ้นใหม่ คุณอาจคิดว่าอาร์เรย์อินพุตจะใช้ได้เสมอ ปิรามิดเป็นสามเหลี่ยมหน้าจั่ว ด้านบนเป็น^ที่ลาดชันด้านแนวทแยงมุมไปด้วย/และและด้านล่างเป็น\ -มุมด้านล่างทั้งสองว่างเปล่าหรือมีจุดเริ่มต้นของปิรามิดอื่นซึ่งเป็นข้อโต้แย้ง ตรงกลางเต็มไปด้วยชื่อของปิรามิดโดยไม่สนใจการแบ่งบรรทัด นี่คือวิธีที่ parser แปลงรหัสเป็นรูปแบบที่ใช้งานได้ ก่อนอื่นมันจะตรวจหาปิรามิดระดับบนสุด หากไม่มีข้อโต้แย้งมันจะแสดงถึงมันด้วยสตริงเดียวและย้ายไป มิฉะนั้นมันหมายถึงเป็นอาร์เรย์หรือ["name",[arg1,arg2]] ["name",[arg1]]อาร์กิวเมนต์คือปิรามิดที่ด้านล่างซ้ายและขวาล่างของปิรามิดซึ่งอาจเป็นสตริงหรือมากกว่านั้นที่อธิบายไว้ข้างต้น คุณอาจสังเกตเห็นว่าสิ่งนี้ค่อนข้างคล้ายกับ …

3
OOP: การเขียนโปรแกรมที่เน้นการทับซ้อนกัน
หนึ่งในกระบวนทัศน์การเขียนโปรแกรมที่ไม่ค่อยมีคนรู้จักซึ่งดูเหมือนว่าเหมาะสมสำหรับการเล่นกอล์ฟรหัสคือOverlapping Oriented Programming (OOP) * เมื่อเขียนโค้ดที่เหมือนกันบางส่วนไบต์จำนวนมากสามารถบันทึกได้โดยการซ้อนทับส่วนที่เหมือนกันและจดจำในวิธีที่บรรทัดรหัสต้นฉบับสองบรรทัดเริ่มต้น งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ทับซ้อนกันสองโปรแกรมcompressและdecompressมีข้อกำหนดต่อไปนี้: * อย่าใช้ในรหัสการผลิตอาจเป็นไปได้ compress compressใช้สองสายในรูปแบบที่สะดวกและทับซ้อนให้มากที่สุด นั่นคือสตริงที่มีความยาวน้อยที่สุดจะถูกส่งกลับดังกล่าวว่าทั้งสองสายการป้อนข้อมูลเป็นสตริงของs sนอกจากนี้เอาต์พุตบางตัวที่ระบุดัชนีเริ่มต้นและจุดสิ้นสุดของสตริงทั้งสองจะถูกส่งคืน ตัวอย่าง: (รูปแบบ IO ที่แน่นอนนั้นขึ้นอยู่กับคุณ) compress("abcd", "deab") -> "deabcd" ((2,5),(0,3)) compress("abcd", "bc") -> "abcd" ((0,3),(1,2)) compress("abc", "def") -> "abcdef" ((0,2),(3,5)) or "defabc" ((3,5),(0,2)) decompress decompressคำนวณฟังก์ชันผกผันของcompressที่ได้รับสตริงและสองดัชนีเริ่มต้นและจุดสิ้นสุด (ในรูปแบบที่พวกเขาจะถูกส่งกลับโดยคุณcompress) กลับสองสตริงเดิม คุณต้องจัดการอินพุตที่ถูกต้องเท่านั้น ความเสมอภาคต่อไปนี้ควรถือสำหรับสตริงทั้งหมดs1, s2: (s1, s2) == decompress (compress (s1, s2)) ตัวอย่าง: …

17
แม็พอักขระ ASCII ที่อินพุต
ให้แน่ใจว่าได้เห็นความท้าทายอื่น ๆ , การย้อนกลับแผนที่อักขระ ASCII ! ชุดอักขระ ASCII (รหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล) เป็นมาตรฐานการเข้ารหัสอักขระที่ใช้กันอย่างแพร่หลายที่สุด รหัส ASCII แสดงถึงข้อความในคอมพิวเตอร์อุปกรณ์โทรคมนาคมและอุปกรณ์อื่น ๆ ท้าทาย ความท้าทายของคุณคือการพิมพ์แผนที่ของชุดอักขระ ASCII เมื่อผู้ใช้ป้อนข้อมูล GIF: หลังจากผู้ใช้ป้อนอักขระ ASCII ทุกตัวเอาต์พุตควรมีลักษณะดังนี้: การทำแผนที่ ตัวละครแต่ละตัวมีตำแหน่งที่กำหนดไว้ในตารางตรรกะ 16x6 เริ่มต้นด้วยอักขระช่องว่างในตำแหน่งด้านซ้ายด้านบนและการตัดที่ 0 หลักจะปรากฏขึ้นด้านล่าง เมื่อได้รับอินพุต ASCII ที่พิมพ์ได้ให้พิมพ์อักขระ ASCII ที่ตำแหน่งหน้าจอที่กำหนดโดยไม่ต้องลบอักขระใด ๆ บนหน้าจอในปัจจุบัน กฎระเบียบ โปรแกรมของคุณเพียงต้องการที่จะแผนที่ออกอักขระ ASCII พิมพ์ไป0x200x7E โปรแกรมของคุณจะต้องไม่ยุติและดำเนินการแมปอักขระต่อไปยังหน้าจอจนกว่าอักขระ ASCII ที่พิมพ์ได้ทั้งหมดจะถูกป้อนเข้า จากที่นี่โปรแกรมของคุณสามารถยกเลิกหรือวิ่งเข้าไปใน Neverland โปรแกรมของคุณสามารถแมปตัวละครในแบบที่คุณชอบเช่นสเปรดชีตตารางหน้าต่างคอนโซลหรือหน้าต่างกราฟิก ไม่ว่าคุณจะแสดงแผนที่อย่างไรจะต้องอัปเดตตามเวลาจริง (ทันทีที่ได้รับการป้อนข้อมูลจากผู้ใช้) หากโปรแกรมของคุณไม่อ่านอินพุตอย่างเงียบ ๆ มันจะต้องเลื่อนเคอร์เซอร์ไปให้พ้นทางดังนั้นข้อความจะไม่เข้าทางแผนที่ …

20
Passtimes สุพีเรีย
บางครั้งเมื่อฉันเบื่อจริง ๆ ฉันชอบที่จะหาผลรวมของจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบ ฉันจะหาผลรวมของความยาวอาร์เรย์ที่เป็นพลังของสองเท่านั้น น่าเสียดายที่ฉันมักจะทำผิดพลาด โชคดีที่ฉันติดตามงานของฉันเมื่อฉันไปตามวิธีต่อไปนี้: ฉันเพิ่มคู่ของตัวเลขที่อยู่ติดกันจนกว่าจะเหลือเพียงอันเดียว ตัวอย่างเช่น: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 คุณมีหน้าที่ตรวจสอบว่าฉันทำผิดพลาดที่ไหนสักแห่งหรือไม่ คุณสามารถรับอินพุตที่ส่งผ่านไปยังฟังก์ชันของคุณหรืออ่านจากมาตรฐานในเอาต์พุตสามารถพิมพ์หรือส่งคืนได้ อินพุต: อาร์เรย์ / รายการ / ฯลฯ ของจำนวนเต็มที่ไม่เป็นลบและอาจมีความยาวของอาร์เรย์นั้นด้วยหากภาษาของคุณต้องการ อาร์เรย์นั้นจะเป็นตัวเลขทั้งหมดที่อ่านจากซ้ายไปขวาจากบนลงล่าง ตัวอย่างเช่นอาร์เรย์ด้านบนจะกลายเป็น: [[6, 18, …

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