Programa python A + B mais curto com entrada e saída


10

Alguns de vocês podem dizer que estou desperdiçando meu tempo, mas essa tarefa não me dá paz por mais de 500 dias. É necessário escrever um programa no Python 3.x que aceite dois números como entrada e exiba sua soma. Os números são fornecidos no seguinte formato:

a b

Alguns exemplos de casos de teste:

100 500 -> 600
3 4     -> 7

O comprimento do código é calculado com a fórmula max (comprimento do código sem espaços ou tabulações ou novas linhas, comprimento do código / 4) . Conheço apenas duas soluções, cada uma delas com um comprimento de 36 caracteres:

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

e:

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

Também sei que a solução existe com comprimento de 34 símbolos. Você pode verificá-lo neste site .


10
Se os espaços não contarem, eu tenho uma solução de 34 caracteres ( SHA1 é e3eb1f896cffc2dbff531ce5ba8fa25d34c22c76). Não sei se seria bom publicar publicamente uma solução para o que parece ser uma competição contínua de programação. Temos uma política de site sobre isso?
Xnor

@ xnor, é uma tarefa muito antiga, ninguém pode impedi-lo de resolver este problema aqui.
Evgeny

11
@xnor, como já temos uma solução de 34 caracteres, você se importaria de postar a sua? SHA1 de Claudio é diferente da sua
Felipe Nardi Batista

2
@FelipeNardiBatista É a mesma coisa com aspas duplas.
Xnor

Respostas:


5

Dada a dica correta em relação à solução no comentário para a mesma pergunta feita no stackoverflow (veja aqui ), eu a reduzi para 34 e sem nenhuma limitação no número de entrada ou outros truques necessários:

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

Aqui está um breve resumo das diferentes soluções atualmente conhecidas:

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

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

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

print(sum(map(int,input()[::2]))) # 33 (limitado a números entre 0 e 9)

Talvez possa ser considerado trapaça, mas talvez não. Pelo menos ainda não existe uma regra para isso, então vamos incluí-lo na coleção de possíveis soluções:

import f;f.f() # 13

Necessário para que esta solução funcione é um script f.py disponível em um diretório de pesquisa para módulos do Python com o seguinte conteúdo:

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

Se você ler a pergunta, ela deverá funcionar no site fornecido, onde não haveria um script externo para importar.
mbomb007

@ mbomb007: Eu li a pergunta e ela não é mencionada na pergunta, ou você pode fornecer uma citação da pergunta afirmando que é?
Claudio

11
"Você pode verificar [(o problema)] neste site." E no site, as especificações exigem informações do STDIN. acmp.ru/index.asp?main=task&id_task=1 Você não pode criar outro módulo.
mbomb007

11
@ Claudio obrigado pela resposta. A versão correta é impressa (eval (input (). Replace (* '+'))) # 34
Evgeny

@ Claudio, posso fechar duplicado desta pergunta no stackoverflow?
precisa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.