Program python A + B terpendek dengan input dan output

10

Beberapa dari Anda mungkin mengatakan bahwa saya membuang-buang waktu, tetapi tugas ini tidak memberi saya kedamaian selama lebih dari 500 hari. Diperlukan untuk menulis sebuah program dengan Python 3.x yang mengambil dua angka sebagai input dan menampilkan jumlah mereka. Angka-angka diberikan dalam format berikut:

a b

Beberapa contoh kasus uji:

100 500 -> 600
3 4     -> 7

Panjang kode dihitung dengan rumus max (panjang kode tanpa spasi atau tab atau baris baru, panjang kode / 4) . Saya hanya tahu 2 solusi, masing-masing memiliki panjang 36 karakter:

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

dan:

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

Saya juga tahu, bahwa solusi yang ada dengan panjang 34 simbol. Anda dapat memeriksanya di situs web ini .

Evgeny
sumber
10
Jika spasi tidak masuk hitungan, saya punya solusi 34-char ( SHA1 adalah e3eb1f896cffc2dbff531ce5ba8fa25d34c22c76). Saya tidak yakin meskipun itu akan baik untuk memposting solusi untuk apa yang tampaknya menjadi kompetisi pemrograman berkelanjutan. Apakah kita memiliki kebijakan situs tentang itu?
xnor
@ xnor, ini tugas yang sangat lama, tidak ada yang bisa menghentikan Anda untuk menyelesaikan masalah ini di sini.
Evgeny
1
@ xnor karena kami sudah mendapatkan solusi 34-char, maukah Anda memposting milik Anda? SHA1 Claudio berbeda dari milik Anda
Felipe Nardi Batista
2
@FelipeNardiBatista Ini adalah hal yang sama dengan tanda kutip ganda.
xnor

Jawaban:

5

Mengingat petunjuk yang tepat terhadap solusi dalam komentar untuk pertanyaan yang sama yang ditanyakan pada stackoverflow (lihat di sini ), saya telah mencapai 34 dan tanpa batasan pada jumlah input atau trik lain yang diperlukan:

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

Berikut ringkasan singkat dari berbagai solusi yang saat ini dikenal:

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

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

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

print(sum(map(int,input()[::2]))) # 33 (terbatas pada angka antara 0 dan 9)

Mungkin itu bisa dianggap curang, tetapi mungkin tidak. Setidaknya tidak ada aturan untuk hal ini, jadi mari kita memasukkannya ke dalam koleksi solusi yang mungkin:

import f;f.f() # 13

Diperlukan agar solusi ini berfungsi adalah skrip f.py yang tersedia di direktori pencarian untuk modul Python dengan konten berikut:

def f():
    print(sum(map(int,input().split()))) 
Claudio
sumber
Jika Anda membaca pertanyaan, itu harus bekerja di situs web yang diberikan, di mana tidak akan ada skrip eksternal untuk diimpor.
mbomb007
@ mbomb007: Saya telah membaca pertanyaan dan tidak disebutkan dalam pertanyaan, atau dapatkah Anda memberikan kutipan dari pertanyaan yang menyatakan itu?
Claudio
1
"Anda dapat memeriksanya [(masalah)] di situs web ini." Dan di situs web, spesifikasinya memerlukan input dari STDIN. acmp.ru/index.asp?main=task&id_task=1 Anda tidak bisa membuat modul lain.
mbomb007
1
@Claudio terima kasih atas jawabannya. Versi yang benar adalah cetak (eval (input (). Ganti (* '+'))) # 34
Evgeny
@Claudio, bisakah saya menutup duplikat dari pertanyaan ini di stackoverflow?
Evgeny