Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α16.20 · Αγαπήσιμοι Αριθμοί

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #0 (Valentine's Themed), Θέμα 4 · Δυσκολία ★★☆ · programming · Κεφάλαια: 16, 2

Πρόγραμμα: lovable.c (25 μονάδες)

Γράψτε ένα πρόγραμμα που διαβάζει ένα εύρος αριθμών από την κονσόλα (το εύρος είναι κλειστό, δηλαδή περιέχει τα όρια) και τυπώνει όλους τους αγαπήσιμους (lovable) αριθμούς. Ένας αριθμός είναι lovable αν είναι τέλειος κύβος (δηλαδή ένας άλλος ακέραιος υψωμένος στην 3η δύναμη) και ταυτόχρονα παλινδρομικός (δηλαδή διαβάζεται το ίδιο από αριστερά προς τα δεξιά και από δεξιά προς τα αριστερά). Ένα παράδειγμα εκτέλεσης ακολουθεί:

$ gcc -o lovable lovable.c -lm
$ ./lovable 100000 100000000
1030301
1367631

Ο 1030301 είναι lovable καθώς είναι παλινδρομικός και ταυτόχρονα τέλειος κύβος (= 101^3). Το πρόγραμμά σας πρέπει να βγάζει σωστά αποτελέσματα για όρια μέχρι 10^18.

Υπόδειξη

Μέχρι το 10^18 δεν μπορείτε να ελέγξετε κάθε αριθμό: απαριθμήστε αντί γι’ αυτό τους κύβους i*i*i, που είναι μόνο περίπου ένα εκατομμύριο, και ελέγξτε αν είναι παλινδρομικοί αντιστρέφοντας τα ψηφία τους. Χρησιμοποιήστε 64-bit ακέραιους (long long / unsigned long long) και προσέξτε την ακρίβεια αν υπολογίσετε την κυβική ρίζα του κάτω ορίου με cbrt.

Αριθμός στον οδηγό: Α16.20 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex0-q4 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex0-q4.html · Markdown (GitHub)