งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดว่าตัวเลขจะหารด้วยจำนวนอื่นหรือไม่ จับได้ว่ามันควรจะให้คำตอบโดยเร็วที่สุดแม้ว่าจะไม่ได้รับตัวเลขทั้งหมดของตัวเลข
โปรแกรมของคุณควรใช้จำนวนเต็มD ≥ 2 จากนั้นจึงใส่ตัวเลขเป็นชุด ตัวเลขเหล่านี้แทนตัวเลขของจำนวนเต็มอื่นN ≥ 1 เริ่มต้นที่ตัวเลขที่สำคัญน้อยที่สุด ที่จุดแรกที่ไม่มีทั้งต้องหรือต้องไม่เป็น divisble โดยD , โปรแกรมของคุณควรเอาท์พุทคำตอบที่เหมาะสมและออก หากในตอนท้ายของการป้อนข้อมูลที่จะถึงก็ควรเอาท์พุทว่าเต็มNคือหารด้วยD
นี่คือรายการของรูปแบบการป้อนข้อมูลที่ยอมรับได้สำหรับN (แสดงความคิดเห็นหากคุณคิดว่าสิ่งที่ไม่ได้รวมควรได้รับอนุญาต):
อินพุตมาตรฐาน : มีการกำหนดตัวเลขในแต่ละบรรทัด จุดสิ้นสุดของอินพุตคือ EOF หรือค่าพิเศษ exitหมายความว่าฟังก์ชันส่งคืนหรือออกจากโปรแกรม
อินพุตแบบอะนาล็อก : ผ่านเช่นการกดแป้นหรือปุ่มสิบปุ่มแทนแต่ละหลัก จุดสิ้นสุดของอินพุตเป็นค่าพิเศษ exitหมายความว่าฟังก์ชันส่งคืนหรือออกจากโปรแกรม
ฟังก์ชั่นที่มีสถานะทั่วโลก : เรียกซ้ำกับตัวเลขที่ต่อเนื่อง; จุดสิ้นสุดของอินพุตเป็นค่าพิเศษ exitหมายความว่าฟังก์ชันจะคืนค่าที่ไม่ใช่ค่า Null โปรดทราบว่าถ้าคุณใช้รัฐทั่วโลกก็จะต้องได้รับหลังจากที่ค่าจะถูกส่งกลับหรือมิฉะนั้นการตั้งค่าดังกล่าวว่าฟังก์ชั่นการทำงานของหลาย ๆ ครั้ง
ฟังก์ชัน Curried : ส่งคืนฟังก์ชันอื่นที่จะถูกเรียกด้วยตัวเลขถัดไปหรือค่า จุดสิ้นสุดของอินพุตเป็นค่าพิเศษหรือการเรียกใช้ฟังก์ชันโดยไม่มีอาร์กิวเมนต์ exitหมายความว่าฟังก์ชันส่งคืนคำตอบแทนที่จะเป็นฟังก์ชันอื่น
พรอมต์ GUI หรือสิ่งที่คล้ายกัน : แสดงซ้ำ ๆ จุดสิ้นสุดของอินพุตคือ "ยกเลิก" หรือเทียบเท่าหรือค่าพิเศษ exitหมายความว่าการแจ้งเตือนให้หยุดปรากฏ
ฟังก์ชั่น Iterator : input เป็นวัตถุหรือฟังก์ชั่น stateful ที่ส่งกลับตัวเลขถัดไปเมื่อเรียกว่า จุดสิ้นสุดของอินพุตเป็นข้อยกเว้นหรือค่าพิเศษ; exitหมายความว่าตัววนซ้ำหยุดการเรียก
ป้อนสำหรับDและการส่งออกที่สามารถผ่านวิธีการมาตรฐานที่ยอมรับได้
กรณีทดสอบ:
2; 6 => true
5; 6 => false
20; 0 3 => false
20; 0 4 => true
100; 1 => false
100; 0 0 => true
100; 0 2 => false
4; 2 4 => false
4; 2 5 => true
4; 2 [eof] => false
4; 4 [eof] => true
625; 5 5 => false
625; 5 7 2 => false
625; 5 7 3 6 => false
625; 5 7 3 4 => true
7; 9 3 4 [eof] => false
7; 9 3 4 5 [eof] => true
140; 0 3 => false
140; 0 4 5 [eof] => false
140; 0 4 5 1 [eof] => true
14; 4 5 1 4 [eof] => false
14; 4 5 1 4 1 [eof] => true
digits
อินพุตด้วยค่าพิเศษสำหรับ EOF
[]
และ[2]
ผลตอบแทนอื่นใดนอกเหนือfalse
หรือtrue
(รวมถึงฟังก์ชั่นของตัวเอง ฯลฯ ... ) ในขณะที่[2,3]
, [2,3,1]
และผลตอบแทน[2,3,1,EOF]
true
มันทำให้ฉันใกล้เคียงกับตัวเลือกสถานะทั่วโลก