บทนำและเครดิต
เราทุกคนรู้และชื่นชอบกฎที่ยอดเยี่ยมของเราในการทดสอบว่าจำนวนนั้นหารด้วย 11 หรือ 3 ซึ่งเป็นเพียงผลรวมที่ฉลาดกว่าตัวเลขของตัวเลข ตอนนี้ความท้าทายนี้จะนำคุณไปสู่ระดับใหม่โดยกำหนดให้คุณคำนวณผลรวมของตัวเลขแล้วตรวจสอบว่าผลลัพธ์เป็นสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบหรือไม่ซึ่งการดำเนินการใด ๆ ที่ทำได้สั้นมาก เนื่องจากสถานที่แห่งนี้มองเห็นได้ยากเมื่อมองที่ตัวเลขเราต้องการให้ทำรายการทั้งหมดเพื่อให้สามารถบันทึกงานของมนุษย์ได้ นี่คือความท้าทายของคุณตอนนี้!
นี่เป็นงานที่ได้รับมอบหมายในหลักสูตรการเขียนโปรแกรมการทำงานในมหาวิทยาลัยของฉัน ตอนนี้งานนี้ปิดและมีการพูดคุยกันในชั้นเรียนและฉันได้รับอนุญาตจากอาจารย์ให้โพสต์ไว้ที่นี่ (ฉันถามอย่างชัดเจน)
สเปค
อินพุต
ข้อมูลที่คุณป้อนเป็นรายการจำนวนเต็มที่ไม่เป็นลบในรูปแบบ I / O มาตรฐานใด ๆ
คุณสามารถเลือกรูปแบบรายการตามที่ภาษาของคุณต้องการ
เอาท์พุต
เอาต์พุตคือรายการของจำนวนเต็มในรูปแบบ I / O มาตรฐานใด ๆ
จะทำอย่างไร?
กรองจำนวนเต็มทุกตัวออกจากรายการอินพุตที่ผลรวมของตัวเลขไม่ใช่ aa square (ของจำนวนเต็ม)
ลำดับขององค์ประกอบอาจไม่สามารถเปลี่ยนแปลงได้เช่นหากคุณทำให้[1,5,9]
คุณไม่ได้รับผลตอบแทน[9,1]
กรณีมุมที่อาจเกิดขึ้น
0 เป็นจำนวนเต็มไม่เป็นลบและทำให้อินพุตที่ถูกต้องและ 0 ยังเป็นรูทจำนวนเต็มที่ถูกต้องเช่น 0 นับเป็นสแควร์จำนวนเต็ม
รายการที่ว่างเปล่าคืออินพุตและเอาต์พุตที่ถูกต้องเช่นกัน
ใครชนะ?
นี่คือ code-golf ดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ!
ใช้กฎมาตรฐานแน่นอน
กรณีทดสอบ
[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] -> []
ตัวอย่างทีละขั้นตอน
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]