บทนำ
Clarence เป็นพนักงานป้อนข้อมูลที่ทำงานกับผู้ให้บริการอินเทอร์เน็ต หน้าที่ของเขาคือป้อนที่อยู่ IP ของลูกค้า ISP ทั้งหมดลงในฐานข้อมูลด้วยตนเอง เขาทำสิ่งนี้โดยใช้แป้นพิมพ์ที่มีเค้าโครงดังต่อไปนี้:
1
2
3
4
5
6
7
8
9
.
0
ระยะห่างระหว่างจุดศูนย์กลางของปุ่มในแนวนอนหรือแนวตั้งคือหนึ่งเซนติเมตร ตัวอย่างเช่นระยะห่างระหว่างศูนย์กลางของ3และ9จะเป็นสองเซนติเมตร ระยะห่างระหว่างศูนย์กลางของ3และ5จะเป็น√2cm ทฤษฎีบทพีทาโกรัสนั้นเพียงพอที่จะคำนวณระยะห่างระหว่างปุ่มสองปุ่มใด ๆ
Clarence ดังที่คุณคาดหวังจากผู้ที่ทำงานใน ISP ใช้ระบบการพิมพ์ที่ช้าและไม่มีประสิทธิภาพ เขาใช้นิ้วเดียวและค้นหากุญแจจากนั้นย้ายนิ้วของเขาไปที่คีย์จากนั้นกดมันและทำซ้ำตัวเลขทั้งหมดในตัวเลข คุณอาจรู้จักรูปแบบนี้ในฐานะ "ระบบค้นหานกอินทรี" เนื่องจากนิ้วค้นหาบนแป้นพิมพ์เพื่อหากุญแจที่ถูกต้องก่อนกดลงเพื่อกดปุ่มกดเช่นเดียวกับที่เหยี่ยวลงเพื่อฆ่า
ตัวอย่างเช่นนี่คือวิธีที่คลาเรนซ์จะพิมพ์หมายเลข7851
:
- เขาเริ่มนิ้วของเขาที่7และกดปุ่ม
- เขาเลื่อนนิ้วของเขาไปทางขวา 1 ซม. 8และกดปุ่ม
- เขาเลื่อนนิ้วของเขาขึ้นไป 1 ซม. 5และกดปุ่ม
- เขาเลื่อนนิ้วของเขาขึ้นตามแนวทแยงมุมขึ้นไปและทิ้งไว้√2ซม. 1แล้วกดปุ่ม
ดังนั้นระยะทางทั้งหมดที่คลาเรนซ์ขยับนิ้วของเขาเพื่อพิมพ์7851
นั้นอยู่1 + 1 + √2
ที่ประมาณ 3.41 ซม.
งานของคุณคือการเขียนโปรแกรมที่คำนวณระยะทางคลาเรนซ์จะต้องเลื่อนนิ้วของเขาเพื่อพิมพ์ในที่อยู่ IP โดยพลการ
ป้อนคำอธิบาย
อินพุตเป็นสตริงที่จะอยู่ในรูปแบบ
().().().()
ซึ่งแต่ละคน()
เป็นจำนวนเต็มในช่วง-0
999
นี่แสดงถึงที่อยู่ IP ที่ Clarence ต้องพิมพ์สิ่งตัวอย่างอาจเป็น:
219.45.143.143
ฉันต้องการจะชี้ให้เห็นว่าปัจจัยการผลิตเช่น0.42.42.42
หรือ999.999.999.999
ยังคงเป็นปัจจัยการผลิตที่ถูกต้องแม้ว่าพวกเขาจะเป็นที่อยู่ IP ที่ไม่ถูกต้อง ดังนั้นคุณไม่จำเป็นต้องใส่รหัสยืนยันที่อยู่ IP ในโปรแกรมของคุณ
คำอธิบายผลลัพธ์
ส่งออกระยะทางที่คลาเรนซ์จะต้องเลื่อนนิ้วของเขาเพื่อที่จะพิมพ์ในที่อยู่ IP ที่ระบุ ปัดเศษทศนิยมสองตำแหน่งเมื่อจำเป็นและใช้cm
หน่วยในผลลัพธ์ของคุณ เอาต์พุตสำหรับอินพุตตัวอย่างคือ27.38cm
(1 + √8 + √5 + 2 + 1 + √5 + 3 + 1 + √5 + √13 + 3 + 1 + √5)