Giriş ve çıkışlı en kısa python A + B programı


10

Bazılarınız zamanımı boşa harcadığımı söyleyebilir, ancak bu görev bana 500 günden fazla bir süre huzur vermiyor. Python 3.x'de girdi olarak iki sayı alan ve toplamlarını görüntüleyen bir program yazılması gerekir . Sayılar aşağıdaki biçimde verilir:

a b

Bazı örnek test örnekleri:

100 500 -> 600
3 4     -> 7

Kodun uzunluğu max formülü ile hesaplanır (boşluk veya sekme veya satırsonu olmayan kod uzunluğu, kod uzunluğu / 4) . Sadece 2 çözüm biliyorum, her birinin uzunluğu 36 karakter:

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

ve:

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

Ayrıca, 34 sembol uzunluğundaki mevcut çözüm olduğunu biliyorum. Bu web sitesinde kontrol edebilirsiniz .


10
Boşluklar sayılmazsa, 34 karakterlik bir çözümüm var ( SHA1 e3eb1f896cffc2dbff531ce5ba8fa25d34c22c76). Sürekli bir programlama yarışması gibi görünen şeylere herkese açık bir şekilde bir çözüm göndermenin iyi olacağından emin değilim. Bununla ilgili bir site politikamız var mı?
xnor

@ xnor, bu çok eski bir görev, kimse burada bu sorunu çözmenizi engelleyemez.
Evgeny

1
@xnor zaten 34 karakterlik bir çözüme sahip olduğumuzdan, sizinkini göndermek ister misiniz? Claudio's SHA1 sizinkinden farklı
Felipe Nardi Batista

2
@FelipeNardiBatista Çift tırnak için de aynı şey geçerli.
xnor

Yanıtlar:


5

Stackoverflow ile ilgili aynı soruya yapılan yorumdaki çözüme doğru doğru ipucu verildiğinde ( buraya bakın ), giriş numarası veya diğer hileler üzerinde herhangi bir sınırlama olmadan hemen aşağıya aldım:

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

Burada şu anda bilinen farklı çözümlerin kısa bir özeti:

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 ile 9 arasındaki sayılarla sınırlıdır)

Belki hile olarak kabul edilebilir, ama olmayabilir. En azından bunun için henüz bir kural yok, bu yüzden onu olası çözümlerin toplanmasına dahil edelim:

import f;f.f() # 13

Bu çözümün çalışması için aşağıdaki içeriğe sahip Python modülleri için bir arama dizininde bulunan bir komut dosyası f.py gereklidir:

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

Soruyu okursanız, içe aktarılacak harici bir komut dosyasının olmayacağı verilen web sitesinde çalışması gerekir.
mbomb007

@ mbomb007: Soruyu okudum ve soruda bahsedilmiyor mu yoksa sorudan alıntı olduğunu söyleyebilir misiniz?
Claudio

1
"Bu web sitesinde [(sorun)] kontrol edebilirsiniz." Ve web sitesinde, özellikler STDIN'den girdi gerektirir. acmp.ru/index.asp?main=task&id_task=1 Başka bir modül oluşturamazsınız.
mbomb007

1
@Claudio cevap için teşekkürler. Doğru sürüm basılır (eval (input (). Replace (* '+'))) # 34
Evgeny

@Claudio, stackoverflow ile ilgili bu sorunun kopyasını kapatabilir miyim?
Evgeny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.