Long Division
Στις παλιές μέρες (περίπου το ), οι μηχανικές αριθμομηχανές εκτελούσαν διαίρεση με μετατόπιση και επαναλαμβανόμενη αφαίρεση. Για παράδειγμα, για να διαιρεθεί το με το , οι αριθμοί θα πρέπει πρώτα να ευθυγραμμιστούν με το αριστερό ψηφίο τους (βλ. το παρακάτω) και ο διαιρέτης να αφαιρεθεί από τον διαιρετέο όσο το δυνατόν περισσότερες φορές χωρίς να προκύψει αρνητικός αριθμός. Ο αριθμός των επιτυχημένων αφαιρέσεων (σε αυτό το παράδειγμα, το ) είναι το πρώτο ψηφίο του πηλίκου. Ο διαιρέτης, μετατοπισμένος προς τα δεξιά (βλ. το παρακάτω), αφαιρείται από το υπόλοιπο αρκετές φορές για να προκύψει το επόμενο ψηφίο και ούτω καθεξής έως ότου το υπόλοιπο είναι μικρότερο από το διαιρέτη.
987654321
-3456789 ← First successful subtraction (1)
========
641975421
-3456789 ← Second successful subtraction
========
296296521 ← remainder
-3456789 ← unsuccessful subtraction
========
negative
296296521
3456789 (2)
========
261728631
etc.
- Γράψτε ένα πρόγραμμα για την εφαρμογή αυτής της μεθόδου διαίρεσης.
Είσοδος
Η πρώτη γραμμή του αρχείου εισόδου περιέχει έναν θετικό ακέραιο , , ο οποίος αντιπροσωπεύει τον αριθμό των δοκιμαστικών περιπτώσεων που ακολουθούν. Κάθε δοκιμαστική περίπτωση παρέχεται σε ένα ζεύγος γραμμών, με τον αριθμό στην πρώτη γραμμή να είναι ο διαιρετέος και ο αριθμός στη δεύτερη γραμμή να είναι ο διαιρέτης. Κάθε γραμμή θα περιέχει έναν θετικό ακέραιο μήκους έως και ψηφίων.
Έξοδος
Για κάθε ζεύγος γραμμών εισόδου, το αρχείο εξόδου σας θα πρέπει να περιέχει ένα ζεύγος γραμμών που αντιπροσωπεύουν το πηλίκο ακολουθούμενο από το υπόλοιπο. Η έξοδος για διαφορετικές περιπτώσεις δοκιμών θα πρέπει να διαχωρίζεται με μία μόνο κενή γραμμή. Η έξοδος σας θα πρέπει να παραλείπει τα μη απαραίτητα μηδενικά.
Παράδειγμα
input
987654321
3456789
33
11
11
33
output
285
2469456
3
0
0
11
- Εάν ο διαιρετέος έχει μήκος ψηφία και ο διαιρέτης έχει μήκος ψηφία, εξάγετε έναν τύπο ως προς το και που προσεγγίζει τον μέγιστο αριθμό μονοψήφιων αφαιρέσεων που εκτελούνται από το πρόγραμμά σας.
Comments