Mystery [10 Μονάδες]
Η συνάρτηση mystery δέχεται ως όρισμα έναν ακέραιο αριθμό που αποτελείται από τα 3
τελευταία ψηφία του sdi σας. Για παράδειγμα, αν ο sdi σας είναι ο sdi2500789 τότε καλούμε
την συνάρτηση ως mystery(789). Τι θα τυπώσει η συνάρτηση για τα ψηφία του δικού σας sdi;
Αν δεν έχετε sdi, επιλέξτε έναν τυχαίο τριψήφιο. Αιτιολογήστε όπου νομίζετε πως χρειάζεται.
int mystery(int number) {
int seed = number % 10;
int count = (seed == 0 || seed > 4) ? 2 : seed;
printf("Seed %d, count: %d\n", seed, count);
for(int i = 0; i < count; ++i) {
printf("Loop %d: %d\n", i, ++seed);
seed &= 0xF;
}
printf("Result: %d\n", seed);
return seed;
}
Μόνο το τελευταίο ψηφίο μετράει· βρείτε πρώτα τι κάνει ο τελεστής συνθήκης ?: για
το count. Προσέξτε ότι το ++seed αυξάνει την τιμή πριν τυπωθεί, και ότι το
& 0xF κρατά μόνο τα 4 χαμηλότερα bit: τι γίνεται όταν το seed φτάσει το 16;
Αριθμός στον οδηγό: Α5.10
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2026-jan-q1 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2026-jan-q1.html ·
Markdown (GitHub)