入力と出力を備えた最短のpython A + Bプログラム


10

私の時間を浪費していると言う人もいるかもしれませんが、この仕事は500日以上の間私に平和を与えません。2つの数値を入力として受け取り、それらの合計を表示するプログラムをPython 3.xで作成する必要があります。番号は次の形式で示されます。

a b

テストケースの例:

100 500 -> 600
3 4     -> 7

コードの長さは、式max(スペース、タブ、改行を含まないコード長、コード長/ 4)で計算されます。私が知っているソリューションは2つだけで、それぞれの長さは36文字です。

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

そして:

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

また、長さが34シンボルのソリューションが存在することも知っています。このウェブサイトで確認できます


10
スペースが数えられない場合は、34文字の解決策があります(SHA1はe3eb1f896cffc2dbff531ce5ba8fa25d34c22c76です)。継続的なプログラミング競争のように見えるものに対する解決策を公に投稿するのは良いことでしょうが、私にはわかりません。それに関するサイトポリシーはありますか?
xnor

@ xnor、これは非常に古いタスクです。この問題を解決するために誰もあなたを止めることはできません。
エフゲニー

1
@xnorは既に34文字のソリューションを取得しているので、投稿していただけませんか。ClaudioのSHA1はあなたのものとは異なります
Felipe Nardi Batista

2
@FelipeNardiBatista二重引用符も同じです。
xnor 2017

回答:


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

このソリューションが機能するために必要なのは、次の内容のPythonのモジュールの検索ディレクトリにあるスクリプトf.pyです。

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

質問を読んだ場合、それは特定のWebサイトで機能する必要があり、インポートする外部スクリプトはありません。
mbomb007 2017

@ mbomb007:質問を読みましたが、質問に記載されていません。または、質問であることを示す引用を提供できますか?
クラウディオ

1
「このウェブサイトで[(問題)]を確認できます。」そしてウェブサイトでは、仕様はSTDINからの入力を必要とします。acmp.ru/index.asp?main=task&id_task=1別のモジュールを作成することはできません。
mbomb007 2017

1
@Claudio回答に感謝します。正しいバージョンはprint(eval(input()。replace(* '+')))です。#34
Evgeny

@ Claudio、stackoverflowでこの質問の複製を閉じることはできますか?
エフゲニー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.