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

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

22
ส่งออกจำนวนตรรกยะที่ n ตามลำดับ Stern-Brocot
ลำดับสเติร์น-Brocotเป็น Fibonnaci เหมือนลำดับซึ่งสามารถสร้างดังนี้ เริ่มต้นลำดับด้วย s(1) = s(2) = 1 ตั้งเคาน์เตอร์ n = 1 ผนวกs(n) + s(n+1)เข้ากับลำดับ ผนวกs(n+1)เข้ากับลำดับ เพิ่มขึ้นnกลับไปยังขั้นตอนที่ 3 นี่เทียบเท่ากับ: ในบรรดาคุณสมบัติอื่น ๆ ลำดับ Stern-Brocot สามารถใช้เพื่อสร้างจำนวนตรรกยะเชิงบวกที่เป็นไปได้ทั้งหมด จำนวนตรรกยะทุกตัวจะถูกสร้างขึ้นหนึ่งครั้งและจะปรากฏในเงื่อนไขที่ง่ายที่สุดเสมอ ตัวอย่างเช่น1/3เป็นจำนวนตรรกยะที่ 4 ในลำดับ แต่ตัวเลขที่เทียบเท่า2/6และ3/9อื่น ๆ จะไม่ปรากฏเลย เราสามารถกำหนดจำนวนตรรกยะที่ n เป็นr(n) = s(n) / s(n+1)โดยที่s(n)หมายเลขสเติร์น - โบรคต์ดังที่อธิบายไว้ข้างต้น ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่จะส่งออกจำนวนเหตุผลที่ n ที่สร้างขึ้นโดยใช้ลำดับ Stern-Brocot อัลกอริทึมที่อธิบายไว้ข้างต้นได้รับการจัดทำดัชนี 1 ชุด ถ้ารายการของคุณถูกจัดทำดัชนี 0 …

30
คลื่นคู่ - อนุภาคคู่ทางโปรแกรม
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสายอักขระบรรทัดเดียวแบบไม่มีเงื่อนไข สตริงทั้งจะเป็นศูนย์หรือมากกว่าช่องว่างตามระยะเวลาหนึ่ง (เป็นอนุภาค ) เช่น.หรือ ., หรือสตริงจะเป็นลำดับที่หนึ่งหรือสลับไปข้างหน้าและทับกลับ (เป็นคลื่น ) ที่สามารถเริ่มต้นด้วยคนใดคนหนึ่งเช่น เป็น\หรือหรือ/\/\/\/\/\/\/\/ ไม่ว่าในกรณีใดก็ตามให้แพร่กระจายอนุภาค / คลื่นไปทางขวาทีละหนึ่งหน่วย โดยเฉพาะอย่างยิ่งในกรณีของอนุภาคให้แทรกช่องว่างไว้ก่อนหน้า.แล้วย้ายที่เดียวไปทางขวาแล้วส่งออกสตริงผลลัพธ์ ตัวอย่างเช่น: .→การ . .→การ . .→การ . .→การ . .→การ . .→การ . .→การ . .→การ . ในกรณีของคลื่นให้ผนวกอย่างใดอย่างหนึ่ง/หรือ\อย่างเหมาะสมเพื่อให้คลื่นยังคงสลับกันและความยาวจะเพิ่มขึ้นทีละหนึ่งแล้วจึงส่งออกสตริงผลลัพธ์ ตัวอย่างเช่น: /→การ/\ \→การ\/ /\→การ/\/ \/→การ\/\ /\/→การ/\/\ \/\→การ\/\/ /\/\→การ/\/\/ \/\/→การ\/\/\ ในทั้งสองกรณีเอาต์พุตอาจไม่มีช่องว่างต่อท้าย แต่ขึ้นบรรทัดใหม่ที่เป็นทางเลือกได้รับอนุญาต รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

24
การกำหนดสตริง
บทนำ สำหรับคนที่ไม่ทราบว่า palindrome คือเมื่อสตริงเท่ากับสตริงย้อนหลัง (ยกเว้น interpunction, ช่องว่าง, ฯลฯ ) ตัวอย่างของ palindrome คือ: abcdcba หากคุณย้อนกลับมาคุณจะพบกับ: abcdcba ซึ่งเป็นแบบเดียวกัน ดังนั้นเราจึงเรียกสิ่งนี้ว่า palindrome เมื่อต้องการ palindromize สิ่งลองมาดูตัวอย่างของสายอักขระ: adbcb นี่ไม่ใช่ palindrome เพื่อให้เป็นไปตามนี้เราต้องรวมสตริงที่กลับด้านเข้าไปในสตริงเริ่มต้นที่ด้านขวาของสตริงเริ่มต้นโดยปล่อยให้ทั้งสองเวอร์ชันไม่เป็นอันตราย ยิ่งสั้นยิ่งดี สิ่งแรกที่เราลองได้คือ: adbcb bcbda ^^ ^^ ไม่ใช่อักขระทุกตัวที่ตรงกันดังนั้นจึงไม่ใช่ตำแหน่งที่ถูกต้องสำหรับสตริงที่กลับด้าน เราไปทางขวาหนึ่งก้าว: adbcb bcbda ^^^^ สิ่งนี้ยังไม่ตรงกับอักขระทั้งหมด เราไปอีกขั้นทางขวา: adbcb bcbda เวลานี้ตัวละครทุกตัวตรง เราสามารถผสานสตริงทั้งสองออกเหมือนเดิม ผลลัพธ์สุดท้ายคือ: adbcbda นี่คือสตริง palindromized งาน กำหนดสตริง (มีอย่างน้อยหนึ่งตัว) ที่มีเพียงตัวอักษรตัวพิมพ์เล็ก …

16
คำที่ยาวที่สุดโดยใช้แป้นพิมพ์ qwerty แถวเดียว
สามแถวของคีย์บอร์ดที่มีqwertyuiop, และasdfghjkl zxcvbnmงานของคุณคือค้นหาคำที่ยาวที่สุดที่สามารถพิมพ์ได้โดยใช้เพียงแถวเดียวของแป้นพิมพ์จากรายการคำที่กำหนด ตัวอย่างอินพุต 1 artist home gas writer geology marine twerp เอาท์พุต writer (จากคำที่กำหนดเท่านั้นgas, writerและtwerpสามารถเขียนได้โดยใช้แถวเดียวและwriterเป็นที่ยาวที่สุด) คำอาจไม่เป็นคำที่แท้จริง (ดังนั้นอย่าถือว่าแถวที่สามไม่ถูกต้อง) อย่างไรก็ตามคุณสามารถสันนิษฐานได้ว่าจะมีคำตอบเดียวเสมอ (ไม่มากไม่น้อย) ตัวอย่างอินพุต 2 wrhuji bxnzmmx gllwssjjd vnccbb lrkjhgfdsa tttttt เอาท์พุต bxnzmmx เครื่องหมายวรรคตอนและช่องว่างเพิ่มเติมสามารถระบุได้ในอินพุต (ตามข้อกำหนดภาษา) อย่างไรก็ตามไม่ควรให้เอาต์พุตพิเศษ อินพุตและเอาต์พุตเป็นตัวพิมพ์เล็ก รหัสที่สั้นที่สุดชนะ

30
บิตเฉลี่ย: ความท้าทายโดยเฉลี่ย
รับจำนวนเต็ม N> = 1 ส่งออกจำนวนเฉลี่ยของบิตในจำนวนเต็มตั้งแต่ 0 ถึง N - 1 สเปค เอาต์พุตสามารถคำนวณเป็นผลรวมของจำนวนบิตในการแทนเลขฐานสองของแต่ละจำนวนเต็มตั้งแต่ 0 ถึง N-1 หารด้วย N การแทนค่าไบนารีของจำนวนเต็มไม่มีศูนย์นำหน้าในบริบทนี้ยกเว้นศูนย์ซึ่งแสดงเป็น 0 ในไบนารี ผลลัพธ์ควรมีความแม่นยำถึงตัวเลขที่มีนัยสำคัญอย่างน้อย 7 ตัว ตัวอย่าง N = 6 0: 0 : 1 bit 1: 1 : 1 bit 2: 10 : 2 bits 3: 11 : 2 bits 4: 100 : …

12
นั่นคือนายก…เกือบ
หากคุณเคยเรียนรู้เรื่องช่วงเวลาในชั้นเรียนคณิตศาสตร์มาก่อนคุณอาจต้องลองดูว่าตัวเลขนั้นดีหรือไม่ คุณอาจจะสับสนในขณะที่คุณยังคงเรียนรู้พวกเขาเช่นเข้าใจผิด 39 สำหรับนายก ก็ไม่ต้องกังวลเพราะ 39 เป็นเซมิโคลนคือมันเป็นผลคูณของสองช่วง ในทำนองเดียวกันเราสามารถกำหนดk- ที่สำคัญที่สุดว่าเป็นผลิตภัณฑ์ของตัวเลขที่k ตัวอย่างเช่น 40 เป็นอันดับ 4 อันดับที่ 4 เกือบ 40 = 5 * 2 * 2 * 2 ผลิตภัณฑ์ 4 ปัจจัย งานของคุณคือการเขียนโปรแกรม / ฟังก์ชั่นที่รับจำนวนเต็มสองจำนวนnและkเป็นอินพุทและเอาท์พุท / ส่งกลับค่าn th k - จำนวนเฉพาะสูงสุด นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ n, k => output n, 1 => the nth prime number …

25
หุ่นยนต์บนบันได
พื้นหลัง ฉันมีบันไดพิงกำแพงและหุ่นยนต์ควบคุมจากระยะไกลที่สามารถปีนขึ้นไปได้ ฉันสามารถส่งคำสั่งต่าง ๆ ไปยังหุ่นยนต์ได้สามคำ: UP: หุ่นยนต์ก้าวขึ้นไปหนึ่งขั้น ถ้ามันอยู่ในขั้นตอนที่สูงที่สุดมันจะเดินทางไปตกหล่นและระเบิด DOWN: หุ่นยนต์ลงหนึ่งขั้น ถ้ามันเป็นขั้นตอนที่ต่ำที่สุดจะไม่มีอะไรเกิดขึ้น RESET: หุ่นยนต์กลับไปที่ขั้นต่ำสุด ฉันยังสามารถส่งชุดคำสั่งและหุ่นยนต์จะดำเนินการพวกเขาทีละคน งานของคุณคือทำนายการเคลื่อนไหว อินพุต ปัจจัยการผลิตของคุณเป็นจำนวนเต็มบวกNคิดเป็นจำนวนขั้นตอนในบันไดและสตริงไม่ว่างเปล่าCกว่าUDRคิดเป็นคำสั่งที่ผมได้ส่งไปยังหุ่นยนต์ N < 1000คุณสามารถสรุปได้ว่า หุ่นยนต์จะเริ่มต้นในขั้นตอนต่ำสุดของบันได เอาท์พุต มีการรับประกันว่าในบางจุดหุ่นยนต์จะปีนขึ้นไปบนขั้นสูงสุดและระเบิด เอาต์พุตของคุณคือจำนวนคำสั่งที่เรียกใช้ก่อนที่จะเกิดเหตุการณ์นี้ ตัวอย่าง พิจารณาอินพุตN = 4และC = "UDDUURUUUUUUUDDDD" หุ่นยนต์ที่แสดงโดย@เคลื่อนที่ไปตามบันได 4 ขั้นตอนดังนี้: |-| |-| |-| |-| |-| |-| |-| |-| |-| |@| |-|| |-| |-| |-| |-| |-| |@| …

17
ซ่อมแซมช่วง
กำหนดอินพุตของรายการจำนวนเต็มบวกที่แทนที่ด้วยบาง0เอาท์พุทรายการที่มีตัวเลขหายไปซึ่งเปลี่ยนเป็น0แทนที่ ลักษณะของรายการอินพุต: รายการจะมีความยาวอย่างน้อย 2 เสมอ ขอให้เรากำหนดรายการการป้อนข้อมูลเป็นaและรายการ "ต้นฉบับ" (นั่นคือรายการก่อนที่ตัวเลขที่ถูกแทนที่ด้วย0s) bเป็น สำหรับการใด ๆn, a[n]เป็นทั้งหรือb[n]0 สำหรับการใด ๆn, b[n]เป็นทั้งหรือb[n-1] + 1 b[n-1] - 1นั่นคือตัวเลขในbจะมีการเปลี่ยนแปลงโดย1ในแต่ละดัชนีจากก่อนหน้านี้ แน่นอนว่าองค์ประกอบแรกนั้นได้รับการยกเว้นจากกฎนี้ สำหรับทุกการทำงานของเลขศูนย์ในa(นั่นคือองค์ประกอบต่อเนื่องถูกแทนที่ด้วย 0) โดยxแสดงดัชนีของการเริ่มต้นของการรันและการy เป็นตัวแทนของจุดสิ้นสุดa[x-1]เพื่อที่a[y+1]จะเพิ่มหรือลดลง ดังนั้นจะมีเพียงวิธีเดียวที่เป็นไปได้ในการเติมในศูนย์ นี่ก็หมายความว่าทั้งองค์ประกอบแรกและสุดท้ายของอาร์เรย์ไม่สามารถเป็นศูนย์ได้ ในแง่ที่ง่ายกว่าในการเติมจำนวนศูนย์ให้แทนที่ด้วยช่วงจากจำนวนก่อนไปยังหมายเลขที่ตามมา ตัวอย่างเช่นอินพุตของ 1 2 0 0 0 6 7 จะต้องส่งออก 1 2 3 4 5 6 7 เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ: In Out ----------------------------------------------------- 1 …

20
ค้นหาและหมุน
งาน นี่เป็นความท้าทายที่เรียบง่าย ข้อมูลที่คุณป้อนเป็นสตริงที่ไม่ว่างเปล่าหนึ่งบรรทัดมีเฉพาะตัวเลข0123456789และแฮช#เท่านั้น มันจะมีอีกหนึ่งการทำงานของตัวเลขซึ่ง encodes #ติดลบและอาจห่อรอบจุดสิ้นสุดของสตริงและที่หนึ่งอย่างน้อย จำนวนเต็มอาจมีเลขศูนย์นำหน้า ตัวอย่างเช่น##44##, 013####และ23###1เป็นปัจจัยการผลิตที่ถูกต้องในขณะที่###, 0099และ#4#4ไม่ได้ งานของคุณคือการดึงจำนวนเต็มnจากสตริงและส่งออกnขั้นตอนการหมุนสตริงไปทางขวา ตัวอย่าง การป้อนข้อมูลที่#1##ควรจะหมุนขั้นตอนที่ 1 ##1#ไปทางขวาเพื่อให้การส่งออกที่ถูกต้องคือ อินพุต#026###ควรหมุนไป 26 ขั้นตอนไปทางขวาเนื่องจากค่า 0 นำหน้าจะถูกละเว้น 26####0เอาท์พุทที่ถูกต้องคือ อินพุต1####2มีจำนวนเต็ม 21 ที่พันปลายดังนั้นจึงควรหมุน 21 ขั้นไปทางขวา ##21##เอาท์พุทที่ถูกต้องคือ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและไม่อนุญาตช่องโหว่มาตรฐาน คุณสามารถสันนิษฐานได้ว่าตัวเลขนั้นnเหมาะกับintภาษามาตรฐานของคุณ ตรงกันข้ามถ้าว่ามาตรฐานintการดำเนินการประเภทความแม่นยำ arbitrary จำนวนเต็มคุณต้องรองรับ (ในทางทฤษฎี) nความใหญ่พล กรณีทดสอบ #1## -> ##1# ##4## -> #4### 1####1 -> ####11 1####2 -> ##21## #026### …

30
ใช้ Takewhile
บทนำและเครดิต วันนี้ได้โดยไม่ต้องโหมโรงแฟนซี: takewhileโปรดดำเนินการ ความแตกต่างของสิ่งนี้ (ในโครงสร้างข้อมูลที่ไม่สำคัญ) เป็นการกำหนดหลักสูตรการเขียนโปรแกรมเชิงปฏิบัติการของมหาวิทยาลัย ตอนนี้งานนี้ปิดและมีการพูดคุยกันในชั้นเรียนและฉันได้รับอนุญาตจากอาจารย์ให้โพสต์ไว้ที่นี่ (ฉันถามอย่างชัดเจน) สเปค อินพุต อินพุตจะเป็นรายการ (หรือแนวคิดที่เทียบเท่ากับภาษาของคุณ) ของจำนวนเต็มบวก เอาท์พุต ผลลัพธ์ควรเป็นรายการ (หรือแนวคิดที่เทียบเท่ากับภาษาของคุณ) ของจำนวนเต็มบวก จะทำอย่างไร? งานของคุณคือการนำไปใช้takewhile(อนุญาตให้ใช้ภาษาที่มีอยู่ในเครื่อง) พร้อมคำอธิบายว่าหมายเลขที่อยู่ระหว่างการพิจารณาจะเท่ากัน (เพื่อเน้นไปที่ takewhile) ดังนั้นคุณจึงวนซ้ำรายการตั้งแต่ต้นจนจบและในขณะที่เงื่อนไข (เท่ากับ) คุณคัดลอกไปยังรายการผลลัพธ์และทันทีที่คุณกดองค์ประกอบที่ไม่ทำให้เงื่อนไขเป็นจริงคุณจะยกเลิกการดำเนินการและเอาท์พุท (ตัวอย่างทีละขั้นตอนอยู่ด้านล่าง) ฟังก์ชันการสั่งซื้อที่สูงกว่านี้เรียกว่า takeWhile ( takewhile) กรณีมุมที่อาจเกิดขึ้น ลำดับของรายการที่ส่งออกเมื่อเทียบกับรายการการป้อนข้อมูลที่อาจจะไม่สามารถเปลี่ยนแปลงได้เช่นอาจจะไม่กลายเป็น[14,42,2][42,14] รายการที่ว่างเปล่าคือ in- and output ที่ถูกต้อง ใครชนะ? นี่คือ code-golf ดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ! ใช้กฎมาตรฐานแน่นอน ทดสอบเวกเตอร์ [14, 42, 2324, 97090, 4080622, 171480372] -> …

29
ความเกลียดชัง / ความรักปริศนา
คำอธิบายการท้าทาย ในการท้าทายนี้เราจะพิจารณาloveและhateรู้สึกเท่านั้น หากเราต้องการแสดงออกถึงความรู้สึกที่เป็นระเบียบNเราจะสลับไปมาระหว่างสองสิ่งนี้ (เริ่มต้นด้วยhate): order | expression 1 I hate it. 2 I hate that I love it. 3 I hate that I love that I hate it. 4 I hate that I love that I hate that I love it. Nรูปแบบต่อไปนี้สำหรับทุกจำนวนเต็มบวก ป.ร. ให้ไว้Nการส่งออกการแสดงออกความรู้สึก correspoinding Nของการสั่งซื้อ หมายเหตุ หยุดเต็ม (. ) …
30 code-golf  string 

11
จัดวาง ASCII-Art ที่ดีนี้
บทนำ ฉันคิดว่าทุกคนยอมรับว่ารูปภาพที่ดีต้องมีกรอบที่ดี แต่ความท้าทายส่วนใหญ่ในเว็บไซต์นี้เกี่ยวกับ ASCII-Art เพียงแค่ต้องการภาพที่ดิบและไม่สนใจว่ามันจะถูกสงวนไว้ มันจะไม่ดีถ้าเรามีโปรแกรมที่ใช้ ASCII-Art และล้อมรอบด้วยเฟรมที่ดี? ความท้าทาย เขียนโปรแกรมที่ใช้ ASCII-Art เป็นอินพุตและเอาต์พุตล้อมรอบด้วยเฟรมที่สวยงาม ตัวอย่าง: ***** *** * * * * *** ***** กลายเป็น ╔═══════╗ ║ ***** ║ ║ *** ║ ║ * ║ ║ *** ║ ║ ***** ║ ╚═══════╝ คุณต้องใช้ตัวอักษรเหมือนกันทุกประการกับเฟรมดังตัวอย่าง: ═ ║ ╔ ╗ ╚ ╝ ด้านบนและด้านล่างของเฟรมจะถูกแทรกก่อนบรรทัดแรกและหลังบรรทัดสุดท้ายของอินพุต ส่วนด้านซ้ายและด้านขวาของเฟรมจะต้องมีช่องว่างหนึ่งช่องที่แน่นอนไปยังบรรทัดที่กว้างที่สุดของอินพุต อาจไม่มีช่องว่างนำหน้าหรือต่อท้ายในเอาต์พุต อนุญาตเฉพาะบรรทัดขึ้นบรรทัดใหม่เท่านั้น …

24
พูดในสิ่งที่คุณเห็น
ลำดับ "ดูแล้วพูด" หรือ "พูดในสิ่งที่คุณเห็น" เป็นชุดของตัวเลขที่แต่ละตัวอธิบายล่าสุด 1 11 (one one) 21 (two ones) 1211 (one two, one one) 111221 (one one, one two, two ones) 312211 (three ones, two twos, one one) และบนและบน ... https://oeis.org/A005150 อย่างไรก็ตามนี่เป็นความท้าทายของการเล่นกอล์ฟแบบปกติ (นับจำนวนไบต์น้อยที่สุด) ในการสร้างโปรแกรมที่รับสองอาร์กิวเมนต์หมายเลขเริ่มต้นและจำนวนการวนซ้ำ ตัวอย่างเช่นหากคุณเสียบ "1" และ "2" ผลลัพธ์จะเป็น "21" หากคุณเสียบ "2" และ "4" ผลลัพธ์จะเป็น "132112" มีความสุข!

2
บีบอัดภาพเพื่อแสดงตัวอย่าง 4 KiB
ในการท้าทายนี้คุณจะต้องสร้างอัลกอริทึมการบีบอัดภาพตัวอย่าง เป้าหมายคือเพื่อลดไฟล์ภาพที่กำหนดเองไปเป็นภาพตัวอย่างขนาด 4 KiB ซึ่งสามารถใช้เพื่อระบุรูปภาพที่มีแบนด์วิดท์น้อยมากได้อย่างรวดเร็ว คุณต้องเขียนโปรแกรมสองโปรแกรม (หรือโปรแกรมที่รวมกันหนึ่งโปรแกรม): คอมเพรสเซอร์และตัวขยายการบีบอัด ทั้งสองต้องใช้ไฟล์หรือ stdin เป็นอินพุตและเอาต์พุตไปยังไฟล์หรือ stdout คอมเพรสเซอร์ต้องยอมรับภาพหนึ่งภาพในรูปแบบภาพหลัก lossless ของทางเลือก (เช่น PNG, BMP, PPM) และเอาท์พุทไฟล์ของที่มากที่สุด 4096 ไบต์ ตัวขยายการบีบอัดจะต้องยอมรับไฟล์ใด ๆ ที่สร้างโดยคอมเพรสเซอร์และส่งภาพออกให้ใกล้เคียงที่สุดกับอินพุต โปรดทราบว่าไม่มีการ จำกัด ขนาดซอร์สโค้ดสำหรับตัวเข้ารหัส / ตัวถอดรหัสดังนั้นคุณสามารถสร้างสรรค์ในอัลกอริทึมของคุณ ข้อ จำกัด : ไม่มีการโกง'. โปรแกรมของคุณอาจไม่ใช้อินพุตที่ซ่อนอยู่การจัดเก็บข้อมูลบนอินเทอร์เน็ต ฯลฯ นอกจากนี้คุณยังถูกห้ามไม่ให้รวมคุณลักษณะ / ข้อมูลที่เกี่ยวข้องกับชุดภาพการให้คะแนนเท่านั้น สำหรับห้องสมุด / เครื่องมือ / built-ins ที่คุณจะได้รับอนุญาตให้ใช้ทั่วไปการดำเนินงานการประมวลผลภาพ (ปรับเบลอสีเปลี่ยนแปลงพื้นที่ ฯลฯ ) แต่ไม่ได้ภาพถอดรหัส / …

30
นับคน!
บทนำ มันอาจฟังดูแปลก แต่เราไม่ได้มีความท้าทายหนึ่งอย่างในการนับจาก1ถึงnรวม นี่ไม่ใช่สิ่งเดียวกัน สิ่งนั้นเป็นความท้าทายที่ไม่ได้อธิบายอย่างดี นี่ไม่ใช่สิ่งเดียวกัน อันนั้นเกี่ยวกับการนับอย่างไม่มีกำหนด ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่พิมพ์ทุกจำนวนเต็มจาก1การnรวม กฎระเบียบ คุณสามารถไปได้nทุกทาง คุณสามารถสันนิษฐานได้ว่าnจะเป็นจำนวนเต็มบวกเสมอ คุณสามารถnเข้าฐานใดก็ได้ แต่คุณควรส่งออกเป็นทศนิยมเสมอ การส่งออกจะต้องคั่นด้วยตัวอักษรใด ๆ (หรือรูปแบบ) 0123456789ไม่ได้อยู่ใน อนุญาตให้ใช้อักขระนำหน้าหรือต่อท้ายทศนิยม (ตัวอย่างเช่นเมื่อใช้อาร์เรย์เช่น[1, 2, 3, 4, 5, 6]) ช่องโหว่มาตรฐานถูกปฏิเสธ เราต้องการค้นหาวิธีที่สั้นที่สุดในแต่ละภาษาไม่ใช่ภาษาที่สั้นที่สุดดังนั้นฉันจะไม่ยอมรับคำตอบใด ๆ คุณต้องอัปเดตคำตอบของคุณหลังจากการแก้ไขนี้คำตอบที่โพสต์ก่อนการแก้ไขครั้งสุดท้ายจะต้องเป็นไปตามกฎการเปลี่ยนแปลงเกี่ยวกับช่องโหว่มาตรฐาน (ฉันไม่ต้องการปฏิเสธพวกเขา แต่ฉันไม่ต้องการทำให้ชุมชนคำราม) ฉันปฏิเสธพวกเขา) คุณสามารถใช้รุ่นภาษาโพสต์การนัดหมายใด ๆ (หรือภาษา) คุณไม่สามารถใช้ภาษาหรือรุ่นภาษาใด ๆ ที่สร้างขึ้นสำหรับความท้าทายนี้ โบนัส 20% โปรแกรมของคุณจะต้องสามารถนับได้อย่างน้อยสูงสุด18446744073709551615( 2^64-1) ตัวอย่างเช่นถ้าประเภทข้อมูลใหม่เป็นวิธีเดียวที่จะสนับสนุนจำนวนเต็มขนาดใหญ่คุณต้องสร้างมัน หากภาษาของคุณไม่มีวิธีใดที่จะรองรับจำนวนเต็มขนาดใหญ่มากถึง 2 ^ 64-1 จะต้องสนับสนุนขีด จำกัด สูงสุดของภาษานั้น …

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