最短的python A + B程序,带有输入和输出


10

你们当中有些人可能会说我在浪费时间,但是这项任务并没有给我带来500天以上的和平。需要使用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,这是一项非常古老的任务,没有人可以阻止您在这里解决此问题。
Evgeny

1
@xnor,因为我们已经有了一个34字符的解决方案,您介意发布您的解决方案吗?Claudio的SHA1与您的SHA1不同
Felipe Nardi Batista

2
@FelipeNardiBatista用双引号括起来也是一样。
xnor

Answers:


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中找到一个脚本f.py,用于查找具有以下内容的Python模块:

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

如果您阅读了该问题,则该问题必须在给定的网站上起作用,而该网站将不会导入外部脚本。
mbomb007 '17

@ mbomb007:我已经阅读了问题,但问题中未提及该问题,或者您可以从问题中引用该问题吗?
克劳迪奥

1
“您可以在此网站上检查[(问题)]。” 在网站上,规格需要STDIN输入。acmp.ru/index.asp?main=task&id_task=1您不会创建另一个模块。
mbomb007 '17

1
@Claudio感谢您的回答。正确的版本是print(eval(input()。replace(*'+')))#34
Evgeny

@Claudio,我可以在stackoverflow上关闭此问题的副本吗?
Evgeny
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.