Giới thiệu và tín dụng
Tất cả chúng ta đều biết và yêu thích các quy tắc tuyệt vời của mình để kiểm tra xem một số có chia hết cho 11 hay 3 hay không, đây chỉ là một số tiền thông minh so với các chữ số của số đó. Bây giờ thử thách này đưa vấn đề này lên một cấp độ mới, bằng cách yêu cầu bạn tính tổng các chữ số và sau đó kiểm tra xem kết quả có phải là một số nguyên hoàn hảo hay không, các thao tác này thường không thể thực hiện được trong thời gian ngắn. Vì thuộc tính này cũng rất khó nhìn thấy khi nhìn vào một số, chúng tôi muốn điều này được thực hiện cho toàn bộ danh sách các số để chúng tôi có thể tiết kiệm công việc của con người. Vì vậy, đây là thách thức của bạn bây giờ!
Đây là một nhiệm vụ tại khóa học lập trình chức năng đại học của tôi. Nhiệm vụ này hiện đang đóng cửa và đã được thảo luận trong lớp và tôi được sự cho phép của giáo sư của tôi để đăng nó ở đây (tôi đã hỏi rõ ràng).
Đặc điểm kỹ thuật
Đầu vào
Đầu vào của bạn là danh sách các số nguyên không âm, ở bất kỳ định dạng I / O tiêu chuẩn nào.
Bạn có thể chọn định dạng danh sách vì ngôn ngữ của bạn cần
Đầu ra
Đầu ra là một danh sách các số nguyên, ở bất kỳ định dạng I / O tiêu chuẩn nào.
Phải làm sao
Lọc ra mọi số nguyên từ danh sách đầu vào mà tổng các chữ số không phải là một hình vuông (của một số nguyên).
Thứ tự của các yếu tố có thể không được thay đổi, ví dụ: nếu bạn nhận được, [1,5,9]
bạn có thể không quay lại[9,1]
Trường hợp góc tiềm năng
0 là số nguyên không âm và do đó, đầu vào hợp lệ và 0 cũng là một số nguyên hợp lệ, ví dụ 0 được tính là một số nguyên.
Danh sách trống là một đầu vào và đầu ra hợp lệ là tốt.
Ai thắng?
Đây là môn đánh gôn, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng!
Quy tắc tiêu chuẩn áp dụng tất nhiên.
Các trường hợp thử nghiệm
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
Ví dụ từng bước
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]