Chương trình A + B python ngắn nhất với đầu vào và đầu ra


10

Một số bạn có thể nói rằng tôi đang lãng phí thời gian, nhưng nhiệm vụ này không mang lại cho tôi sự bình yên trong hơn 500 ngày. Cần phải viết một chương trình trong Python 3.x , lấy hai số làm đầu vào và hiển thị tổng của chúng. Các số được đưa ra theo định dạng sau:

a b

Một số trường hợp thử nghiệm ví dụ:

100 500 -> 600
3 4     -> 7

Độ dài của mã được tính bằng công thức tối đa (độ dài mã không có khoảng trắng hoặc tab hoặc dòng mới, độ dài mã / 4) . Tôi chỉ biết 2 giải pháp, mỗi giải pháp có độ dài 36 ký tự:

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

và:

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

Tôi cũng biết rằng giải pháp tồn tại với chiều dài 34 ký hiệu. Bạn có thể kiểm tra nó trên trang web này .


10
Nếu không gian không được tính, tôi có giải pháp 34 char ( SHA1 là e3eb1f896cffc2dbff531ce5ba8fa25d34c22c76). Tôi không chắc chắn mặc dù sẽ tốt khi đăng công khai một giải pháp cho những gì dường như là một cuộc thi lập trình tiếp tục. Chúng tôi có một chính sách trang web về điều đó?
xnor

@ xnor, đó là nhiệm vụ rất cũ, không ai có thể ngăn bạn giải quyết vấn đề này ở đây.
Evgeny

1
@xnor vì chúng tôi đã có một giải pháp 34 char, bạn có phiền đăng bài của bạn không? SHA1 của Claudio khác với bạn
Felipe Nardi Batista

2
@FelipeNardiBatista Đó là điều tương tự với dấu ngoặc kép.
xnor

Câu trả lời:


5

Đưa ra gợi ý đúng về giải pháp trong nhận xét cho cùng một câu hỏi được hỏi về stackoverflow (xem tại đây ), tôi đã hiểu đúng về 34 và không có bất kỳ giới hạn nào về số đầu vào hoặc các thủ thuật cần thiết khác:

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

Dưới đây là một bản tóm tắt ngắn về các giải pháp khác nhau hiện được biết đến:

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

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

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

print(sum(map(int,input()[::2]))) # 33 (giới hạn số từ 0 đến 9)

Có lẽ nó có thể được coi là gian lận, nhưng có thể không. Ít nhất là không có quy tắc nào cho điều này được xác định, vì vậy hãy đưa nó vào bộ sưu tập các giải pháp có thể:

import f;f.f() # 13

Yêu cầu để giải pháp này hoạt động là tập lệnh f.txt có sẵn trong thư mục tìm kiếm cho các mô-đun Python có nội dung sau:

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

Nếu bạn đọc câu hỏi, nó phải hoạt động trên trang web cụ thể, nơi sẽ không có tập lệnh bên ngoài để nhập.
mbomb007

@ mbomb007: Tôi đã đọc câu hỏi và nó không được đề cập trong câu hỏi, hoặc bạn có thể cung cấp một trích dẫn từ câu hỏi cho biết đó là gì không?
Claudio

1
"Bạn có thể kiểm tra nó [(vấn đề)] trên trang web này." Và trên trang web, các thông số kỹ thuật yêu cầu đầu vào từ STDIN. acmp.ru/index.asp?main=task&id_task=1 Bạn không được tạo mô-đun khác.
mbomb007

1
@Claudio cảm ơn câu trả lời. Phiên bản chính xác là in (eval (input (). Thay thế (* '+'))) # 34
Evgeny

@Claudio, tôi có thể đóng bản sao của câu hỏi này trên stackoverflow không?
Evgeny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.