หลามสั้นที่สุดโปรแกรม A + B พร้อมอินพุทและเอาท์พุท


10

พวกคุณบางคนอาจพูดว่าฉันกำลังเสียเวลา แต่งานนี้ไม่ได้ทำให้ฉันสงบสุขมานานกว่า 500 วัน จำเป็นต้องเขียนโปรแกรมในPython 3.xซึ่งรับค่าตัวเลขสองตัวเป็นอินพุตและแสดงผลรวม ตัวเลขจะได้รับในรูปแบบต่อไปนี้:

a b

ตัวอย่างกรณีทดสอบ:

100 500 -> 600
3 4     -> 7

ความยาวของรหัสที่มีการคำนวณด้วยสูตรสูงสุด (ความยาวรหัสโดยไม่มีช่องว่างหรือแท็บหรือการขึ้นบรรทัดใหม่ความยาวรหัส / 4) ฉันรู้เพียง 2 ทางแก้ปัญหาแต่ละข้อมีความยาว 36 ตัวอักษร:

print(sum(map(int, input().split())))

และ:

print(eval(input().replace(' ', '+')))

ฉันรู้แล้วว่าทางออกที่มีอยู่มีความยาว 34 สัญลักษณ์ คุณสามารถตรวจสอบได้ในเว็บไซต์นี้


10
หากช่องว่างไม่นับฉันมี 34-char solution ( SHA1คือ e3eb1f896cffc2dbff531ce5ba8fa25d34c22c76) ฉันไม่แน่ใจว่าจะเป็นการดีหรือไม่ที่จะโพสต์คำตอบแบบสาธารณะกับสิ่งที่ดูเหมือนว่าเป็นการแข่งขันการเขียนโปรแกรมต่อเนื่อง เรามีนโยบายเว็บไซต์หรือไม่?
xnor

@ xnor เป็นงานที่เก่ามากไม่มีใครสามารถหยุดคุณเพื่อแก้ปัญหานี้ได้
Evgeny

1
@xnor เนื่องจากเรามีวิธีแก้ปัญหา 34 อักขระอยู่แล้วคุณต้องการโพสต์ข้อความของคุณหรือไม่ SHA1 ของ Claudio นั้นแตกต่างจากของคุณ
Felipe Nardi Batista

2
@FelipeNardiBatista เป็นสิ่งเดียวกันกับเครื่องหมายคำพูดคู่
xnor

คำตอบ:


5

ให้คำแนะนำที่ถูกต้องต่อการแก้ปัญหาในการแสดงความคิดเห็นกับคำถามเดียวกันที่ถามใน stackoverflow (ดูที่นี่ ) ฉันได้รับมันจนถึง 34 และไม่มีข้อ จำกัด ใด ๆ เกี่ยวกับหมายเลขอินพุตหรือเทคนิคอื่น ๆ ที่จำเป็น:

print(eval(input().replace(*' +')))

นี่เป็นบทสรุปโดยย่อของโซลูชั่นที่แตกต่างที่รู้จักกันในปัจจุบัน:

print(eval(input().replace(' ','+'))) # 36

print(sum(map(int,input().split()))) # 36

print(eval(input().replace(*' +'))) # 34

print(sum(map(int,input()[::2]))) # 33 (จำกัด เฉพาะตัวเลขระหว่าง 0 ถึง 9)

อาจจะถือได้ว่าเป็นการโกง แต่อาจจะไม่ใช่ อย่างน้อยก็ไม่มีกฎสำหรับการกำหนดนี้ดังนั้นให้รวมไว้ในชุดโซลูชันที่เป็นไปได้:

import f;f.f() # 13

จำเป็นสำหรับโซลูชันนี้ในการทำงานคือสคริปต์ f.py มีอยู่ในไดเรกทอรีการค้นหาสำหรับโมดูลของ Python ที่มีเนื้อหาดังต่อไปนี้:

def f():
    print(sum(map(int,input().split()))) 

หากคุณอ่านคำถามจะต้องทำงานในเว็บไซต์ที่กำหนดโดยที่จะไม่มีสคริปต์ภายนอกที่จะนำเข้า
mbomb007

@ mbomb007: ฉันได้อ่านคำถามและไม่ได้กล่าวถึงในคำถามหรือคุณสามารถให้การอ้างอิงจากคำถามที่ระบุว่ามันคืออะไร?
Claudio

1
"คุณสามารถตรวจสอบได้ [(ปัญหา)] บนเว็บไซต์นี้" และในเว็บไซต์ข้อกำหนดต้องมีการป้อนข้อมูลจาก STDIN acmp.ru/index.asp?main=task&id_task=1คุณไม่ต้องสร้างโมดูลอื่น
mbomb007

1
@ Claudio ขอบคุณสำหรับคำตอบ รุ่นที่ถูกต้องคือพิมพ์ (eval (input (). แทนที่ (* '+'))) # 34
Evgeny

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