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

Α6.24 · Πετυχαίνοντας τον Στόχο

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #9, Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 6, 12

Πρόγραμμα: legolas.c

Γράψτε ένα πρόγραμμα το οποίο παίρνει ως ορίσματα από την γραμμή εντολών έναν ακέραιο-στόχο (goal) και στην συνέχεια ένα σύνολο υποψηφίων ακεραίων (candidates) και τυπώνει όλους τους συνδυασμούς 3 υποψηφίων των οποίων το άθροισμα ισούται με τον στόχο. Η σειρά με την οποία εκτυπώνονται τα αποτελέσματα δεν έχει σημασία για την ορθότητα του προγράμματος. Παραδείγματα εκτέλεσης ακολουθούν:

$ gcc -o legolas legolas.c
$ ./legolas 42 19 21 3 5 12
No combination of candidates leads to 42
$ ./legolas 42 19 21 3 5 12 11
Candidates combination found: 19 + 12 + 11 = 42
$ ./legolas 42 27 25 12 31 5 26 40 34 3 18
Candidates combination found: 27 + 12 + 3 = 42
Candidates combination found: 25 + 12 + 5 = 42
Candidates combination found: 5 + 34 + 3 = 42
$ ./legolas 37372082074 9238742398 82934723 27893492387 127863435 239847289
Candidates combination found: 9238742398 + 27893492387 + 239847289 = 37372082074

Υπόδειξη

Τρεις φωλιασμένοι βρόχοι με δείκτες i < j < k δίνουν κάθε τριάδα υποψηφίων ακριβώς μία φορά. Το τελευταίο παράδειγμα έχει αριθμούς που δεν χωρούν σε int: χρησιμοποιήστε long long και κρατήστε αν βρέθηκε έστω ένας συνδυασμός για το τελικό μήνυμα.

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