Διαδρομές
/
Zig
Zig
/
Ασκήσεις
/
Ενώνοντας τα κομμάτια
Ενώνοντας τα κομμάτια

Ενώνοντας τα κομμάτια

Μέτριο

Εισαγωγή

Ο καλύτερός σου φίλος άρχισε να συλλέγει παζλ και θέλει να φτιάξει έναν λεπτομερή κατάλογο της συλλογής του, καταγράφοντας πληροφορίες όπως ο συνολικός αριθμός των κομματιών, ο αριθμός των σειρών και των στηλών, ο αριθμός των κομματιών του περιγράμματος και των εσωτερικών, η αναλογία διαστάσεων και η μορφή του παζλ. Ακόμα κι αν ενώσεις τις δυνάμεις σου με του φίλου σου, χρειάζονται αρκετές ώρες για να λύσεις ένα μόνο παζλ με χίλια κομμάτια, και μετά πρέπει ακόμα να μετρήσεις τις σειρές και τις στήλες και να υπολογίσεις τους υπόλοιπους αριθμούς με το χέρι. Τα ακόμα μεγαλύτερα παζλ με χιλιάδες κομμάτια μοιάζουν τώρα αρκετά αποθαρρυντικά. "Πρέπει να υπάρχει καλύτερος τρόπος!" αναφωνείς και κάθεσαι μπροστά στον υπολογιστή σου για να λύσεις το πρόβλημα.

Οδηγίες

Με δεδομένες τις μερικές πληροφορίες για ένα παζλ, συμπλήρωσε τα κομμάτια που λείπουν.

Αν οι πληροφορίες δεν επαρκούν για να συμπληρωθούν οι λεπτομέρειες, ή αν τα δοσμένα στοιχεία έρχονται σε αντίφαση μεταξύ τους, ο χρήστης θα πρέπει να ειδοποιηθεί.

Οι πλήρεις πληροφορίες για το παζλ περιλαμβάνουν τα εξής μέρη:

  • pieces: Συνολικός αριθμός κομματιών
  • border: Αριθμός κομματιών περιγράμματος
  • inside: Αριθμός εσωτερικών κομματιών (μη περιγράμματος)
  • rows: Αριθμός σειρών
  • columns: Αριθμός στηλών
  • aspectRatio: Λόγος διαστάσεων στηλών προς σειρές
  • format: Μορφή παζλ, η οποία μπορεί να είναι portrait, square ή landscape

Για αυτή την άσκηση, μπορείς να υποθέσεις ότι τα κομμάτια είναι τετράγωνα, ώστε η μορφή να προκύπτει από τον λόγο διαστάσεων:

  • Αν ο λόγος διαστάσεων είναι μικρότερος από 1, είναι portrait
  • Αν είναι ίσος με 1, είναι square
  • Αν είναι μεγαλύτερος από 1, είναι landscape

Τρία παραδείγματα

Portrait

Ένα παζλ portrait με 6 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος και κανένα δεν είναι εσωτερικό. Έχει 2 στήλες και 3 σειρές. Ο λόγος διαστάσεων είναι 0.666666... (2/3).

Ένα παζλ 2 επί 3

Square

Ένα παζλ square με 9 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος εκτός από το ένα στο κέντρο, το οποίο είναι εσωτερικό κομμάτι. Έχει 3 στήλες και 3 σειρές. Ο λόγος διαστάσεων είναι 1.0 (3/3).

Ένα παζλ 3 επί 3

Landscape

Ένα παζλ landscape με 12 κομμάτια, από τα οποία 10 είναι κομμάτια περιγράμματος και 2 είναι εσωτερικά. Έχει 4 στήλες και 3 σειρές. Ο λόγος διαστάσεων είναι 1.333333... (4/3).

Ένα παζλ 4 επί 3

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Zig Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ενώνοντας τα κομμάτια;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Zig με 104 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.