เราจะดำเนินการหารสำหรับจำนวนเต็มขนาดใหญ่โดยพลการ
งานคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มความแม่นยำโดยพลการและหารกับพวกเขา
ทราบว่าหลายสิ่งหลายอย่างที่อาจทำให้เรื่องนี้ง่ายมากที่ไม่ได้รับอนุญาตโปรดให้แน่ใจว่าจะอ่านผ่านข้อมูลจำเพาะ
อินพุต
คุณจะได้รับ 2 สิ่งเป็นอินพุต:
- สตริงฐาน 10
n
หลักเรียกว่า - อีกสตริงของฐาน 10 หลักเรียกว่า
m
สมมติว่าn>m>0
หมายความว่าคุณจะไม่ถูกขอให้หารด้วยศูนย์
เอาท์พุต
คุณจะเอาท์พุทสองตัวเลขQ
และR
ที่m * Q + R = nและ0 <= R <m
ข้อมูลจำเพาะ
การส่งข้อมูลของคุณควรใช้กับจำนวนเต็มขนาดใหญ่ตามอำเภอใจ (จำกัด โดยหน่วยความจำที่มีอยู่)
คุณไม่สามารถใช้ไลบรารีภายนอก หากคุณต้องการไลบรารี่ภายนอกสำหรับ i / o คุณอาจถือว่าเป็นบิวด์อิน (ดูที่สิ่งต่าง ๆ เช่น iostream เป็นต้น)
หากภาษาของคุณมีอยู่แล้วภายในซึ่งทำให้เรื่องนี้ไม่สำคัญคุณไม่สามารถใช้มันได้ ซึ่งรวมถึง (แต่ไม่ จำกัด เฉพาะ) ชนิดในตัวที่สามารถจัดการกับจำนวนเต็มที่มีความแม่นยำตามอำเภอใจ
หากภาษาด้วยเหตุผลบางอย่างใช้จำนวนเต็มความแม่นยำโดยพลการฟังก์ชันนี้ไม่สามารถใช้เพื่อแสดงจำนวนเต็มที่ไม่สามารถเก็บไว้ใน 64 บิต
เข้าและส่งออกต้องอยู่ในฐาน 10 ไม่สำคัญว่าคุณจะเก็บตัวเลขไว้ในหน่วยความจำหรือวิธีการคำนวณทางเลขคณิตอย่างไร แต่ i / o จะเป็นฐาน 10
คุณมีผลลัพธ์15 วินาที นี่คือการห้ามการลบซ้ำแล้วซ้ำอีก
เป้าหมายที่นี่คือการใช้จำนวนเต็มความแม่นยำโดยพลการ หากด้วยเหตุผลบางอย่างคุณสามารถปฏิบัติตามข้อกำหนดเฉพาะและทำสิ่งนี้ได้สำเร็จโดยไม่ต้องใช้สิ่งเหล่านั้นฉันเดาว่าดีกับคุณ
กรณีทดสอบ
- ในกรณีนี้อินพุต 39! และ 30!
อินพุต
n = 20397882081197443358640281739902897356800000000
m = 265252859812191058636308480000000
เอาท์พุต
Q = 76899763100160
R = 0
n
คือผลรวมของแฟคทอเรียลทั้งหมดสูงสุด 50 และบวก 1m
คือหมายเลขที่ต่อกันมากถึง 20
อินพุต
n = 31035053229546199656252032972759319953190362094566672920420940313
m = 1234567891011121314151617181920
เอาท์พุต
q = 25138393324103249083146424239449429
r = 62459510197626865203087816633
n
คือ 205! + 200!m
น้ำตาปีเตอร์เทย์เลอร์ทำให้ฉันหลั่งน้ำตาด้วยการฉีกสิ่งที่ฉันโพสต์ไว้ในกล่องทราย
อินพุต
n = 271841734957981007420619769446411009306983931324177095509044302452019682761900886307931759877838550251114468516268739270368160832305944024022562873534438165159941045492295721222833276717171713647977188671055774220331117951120982666270758190446133158400369433755555593913760141099290463039666313245735358982466993720002701605636609796997120000000000000000000000000000000000000000000000000
m = 247
เอาท์พุต
q = 1100573825740813795225181252819477770473619155158611722708681386445423816849801159141424129060075102231232666057768175183676764503262931271346408394876267875141461722640873365274628650676808557279259873162169126398101692109801549256156915750794061370041981513180387019893765753438422927286098434193260562682052606153857091520795991080960000000000000000000000000000000000000000000000000
r = 0;
ฉันอาจจะเพิ่มกรณีทดสอบเพิ่มเติมในบางจุด