ใช้ฟังก์ชั่นdivide(int a, int b, int c)
ที่พิมพ์ค่าฐาน 10 a/b
เป็น โดยไม่ต้องใช้ใด ๆ ทางคณิตศาสตร์จุดลอยมิได้BigInteger
/ BigDecimal
หรือเทียบเท่าห้องสมุดใด ๆ อย่างน้อยc
อักขระที่แม่นยำภายในชุด0123456789.
ต้องพิมพ์ยกเว้นข้อยกเว้น (เป็นไปได้) ในจุดที่ 4 ด้านล่าง
a
และb
อาจเป็นจำนวนเต็ม 32 บิต อัปเดต:หากเพื่อวัตถุประสงค์ในการเล่นกอล์ฟคุณต้องการให้อินพุตเป็นแบบดั้งเดิม 64 บิตที่ใช้ได้ แต่คุณไม่จำเป็นต้องสนับสนุนช่วงข้อมูล 64 บิตทั้งหมด- คุณไม่จำเป็นต้องตรวจสอบว่า
c
เป็นไปในเชิงบวก (แต่หวังว่าโปรแกรมของคุณจะไม่เกิดปัญหา) หากไม่ใช่ - ขั้นต่ำในการสนับสนุนที่ถูกผูกไว้บนสำหรับมี
c
500
มันก็โอเคถ้าโปรแกรมของคุณไม่รองรับค่าc
ข้างต้น500
แต่มันก็โอเคถ้ามันทำ - สำหรับตัวเลขที่แบ่งเท่า ๆ กันมันเป็นทางเลือกของคุณว่าจะพิมพ์เลขศูนย์พิเศษ (ตามค่า
c
) หรือไม่มีอะไร - คุณไม่จำเป็นต้องใช้ฟังก์ชั่นเพื่อทำงานเพิ่มเติมใด ๆ กับความฉลาดทางเป้าหมายเดียวคือการพิมพ์
- สำหรับตัวเลขระหว่าง
-1
และมันเป็นสิ่งที่คุณเลือกว่าจะพิมพ์ชั้นนำ1
0
อย่างไรก็ตามนี่เป็นสถานการณ์จำลองเดียวที่ยอมรับการพิมพ์ศูนย์นำหน้าและคุณสามารถพิมพ์หนึ่งในศูนย์ดังกล่าวได้ - คุณสามารถใช้ตรรกะการปัดเศษ / พื้น / เพดานที่คุณต้องการสำหรับทศนิยมตำแหน่งสุดท้าย
-
สำหรับคำตอบเชิงลบคุณจะต้องพิมพ์ชั้นนำc
นี้ไม่นับรวม แต่ก็เป็นทางเลือกของคุณถ้าคุณต้องการพิมพ์,
+
หรืออะไรหาคำตอบในเชิงบวก- อนุญาตการหารทั้งจำนวนและโมดูลัสจำนวนเต็ม อย่างไรก็ตามโปรดจำไว้ว่าคุณถูก จำกัด ให้ใช้แบบดั้งเดิมยกเว้นว่าคุณเลือกที่จะใช้งาน
BigInteger
/BigDecimal
ไลบรารีของคุณเองซึ่งนับรวมกับความยาวโค้ดของคุณ - คุณไม่จำเป็นต้องจัดการกับสิ่ง
b
มีชีวิต0
แม้ว่าคุณจะทำได้ถ้าคุณต้องการ โปรแกรมของคุณอาจเข้าสู่วงวนไม่สิ้นสุดหรือผิดพลาดหากb=0
และคุณจะไม่ถูกลงโทษ - การเปลี่ยนแปลงกฎเล็กน้อยต่อความคิดเห็น เพื่อให้แน่ใจว่าระดับการเล่นอยู่ในระดับขณะที่
a
และb
รับประกันว่าจะเป็นจำนวนเต็ม 32 บิตคุณสามารถใช้จำนวนเต็มแบบยาว 64 บิต หากภาษาที่คุณเลือกมีจำนวนเต็มมากกว่า 64 บิตเป็นภาษาดั้งเดิมคุณไม่สามารถใช้ฟังก์ชันนั้นได้ (อ้างว่าเป็น 64 บิต) - อีกจุดที่ไม่ชัดเจน (แต่ไม่ควรเปลี่ยนคำตอบที่ถูกต้องในปัจจุบัน): ในขณะที่
c
อาจถูกตีความว่าเป็นจำนวนตัวอักษรที่พิมพ์ออกมาหรือจำนวนช่องว่างหลังจุดทศนิยมโปรแกรมของคุณจะต้องใช้c
วิธีใดวิธีหนึ่งที่เกี่ยวข้อง เพื่อตัดสินใจจำนวนอักขระที่จะพิมพ์ กล่าวอีกนัยหนึ่งdivide(2,3,2)
ควรสั้นกว่าเอาท์พุทdivide(2,3,500)
; มันไม่โอเคที่จะพิมพ์ 500c
ตัวอักษรโดยไม่คำนึงถึง - ฉันไม่สนใจชื่อของฟังก์ชั่น
d
โอเคสำหรับการเล่นกอล์ฟ
อินพุต
ทั้งฟังก์ชั่นการโทรและการอ่านจากstdin
ได้รับการยอมรับ หากคุณอ่านstdin
ตัวอักษรใด ๆ ที่ไม่ได้อยู่ในชุด[-0123456789]
จะถือว่าเป็นตัวคั่นอาร์กิวเมนต์
เอาท์พุต
อักขระstdout
ตามที่อธิบายไว้ข้างต้น
ตัวอย่าง
สำหรับdivide(2,3,5)
ทั้งหมดต่อไปนี้เป็นผลลัพธ์ที่ยอมรับได้:
0.666
0.667
.6666
.6667
0.666
0.667
.6666
.6667
+0.666
+0.667
+.6666
+.6667
อีกตัวอย่าง: สำหรับdivide(371,3,5)
สิ่งต่อไปนี้เป็นผลลัพธ์ที่ยอมรับได้ทั้งหมด:
123.6
123.7
123.6
123.7
+123.6
+123.7
123.66666
123.66667
123.66666
123.66667
+123.66666
+123.66667
และสำหรับdivide(371,-3,5)
สิ่งต่อไปนี้ล้วนเป็นสิ่งที่ยอมรับได้:
-123.6
-123.7
-123.66666
-123.66667
92,3,5
คำตอบจะเป็นเช่นนั้น30.67