입력 및 출력을 가진 가장 짧은 파이썬 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은 귀하의 것과 다릅니다
Felipe Nardi Batista

2
@FelipeNardiBatista 큰 따옴표와 같은 것입니다.
xnor

답변:


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()))) 

질문을 읽으면 가져올 외부 스크립트가없는 지정된 웹 사이트에서 문제가 해결되어야합니다.
mbomb007

@ mbomb007 : 질문을 읽었으며 질문에 언급되어 있지 않거나 질문에서 인용을 제공 할 수 있습니까?
Claudio

1
"이 웹 사이트에서 [(문제)]를 확인할 수 있습니다." 그리고 웹 사이트에서 사양은 STDIN의 입력이 필요합니다. acmp.ru/index.asp?main=task&id_task=1 다른 모듈을 만들 수 없습니다.
mbomb007

1
@ Claudio 답변 주셔서 감사합니다. 올바른 버전은 print (eval (input (). replace (* '+'))) # 34
Evgeny

@ Claudio, stackoverflow 에서이 질문의 복제본을 닫을 수 있습니까?
Evgeny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.