Λέμε ότι δύο φυσικοί αριθμοί είναι στην ίδια “παρέα” όταν έχουν το ίδιο πλήθος άσων (1) στην δυαδική τους αναπαράσταση. Για παράδειγμα, το 5 και το 17 είναι στην ίδια παρέα γιατί 5 = 101(2) και 17 = 10001(2), άρα και οι δύο αυτοί αριθμοί έχουν δύο άσους στη δυαδική τους αναπαράσταση. Αντίθετα, το 1.
Πρόβλημα:
Να γραφεί ένα πρόγραμμα σε Γλώσσα, το οποίο θα διαβάζει μία ακολουθία Ν αριθμών και στη συνέχεια θα βρίσκει και θα εμφανίζει το πλήθος των μελών της μεγαλύτερης παρέας που μπορεί να σχηματιστεί από όρους της ακολουθίας. Η ακολουθία ενδέχεται να περιέχει όρους που είναι ίσοι και στην περίπτωση αυτή, θα πρέπει να συμπεριλάβετε όλους τους ίσους όρους, στην ίδια φυσικά παρέα.
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΠΑΡΑΡΤΗΜΑ_Β_ΔΙΑΓ_ΕΠΥ_16 ΣΤΑΘΕΡΕΣ Ν=5 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Π, Υ, Δ[16], ΠΑΡΕΑ[16], Ι, Κ, Λ, Σ, ΜΑΧ, ΘΕΣΗ ΑΡΧΗ ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 16 ΠΑΡΕΑ[Λ] <-- 0 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ Ν ! Mετατροπή από δεκαδικό σε δυαδικό Π <-- 1 Ι <-- 0 ΓΡΑΨΕ 'ΔΩΣΤΕ ΑΡΙΘΜΟ ΣΕ ΔΕΚΑΔΙΚΗ ΜΟΡΦΗ:' ΔΙΑΒΑΣΕ Α ΟΣΟ Π <> 0 ΕΠΑΝΑΛΑΒΕ Ι <-- Ι + 1 Π <-- Α DIV 2 Υ <-- Α MOD 2 Δ[Ι] <-- Υ Α <-- Π ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'ΔΥΑΔΙΚΗ ΜΟΡΦΗ:' ΓΙΑ Κ ΑΠΟ Ι ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1 ΓΡΑΨΕ Δ[Κ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Υπολογισμός Πλήθους Άσων Σ <-- 0 ΓΙΑ Κ ΑΠΟ Ι ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1 ΑΝ Δ[Κ]=1 ΤΟΤΕ Σ <-- Σ + 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'ΑΝΗΚΕΙ ΣΤΗ ΠΑΡΕΑ ', Σ ! Καταμέτρηση παρεών με πίνακα μετρητή ΠΑΡΕΑ[Σ] <-- ΠΑΡΕΑ[Σ]+1 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! Εύρεση μεγίστου και θέσης στον ΠΑΡΕΑ ΜΑΧ <-- ΠΑΡΕΑ[1] ΓΙΑ Λ ΑΠΟ 1 ΜΕΧΡΙ 16 ΑΝ ΜΑΧ < ΠΑΡΕΑ[Λ] ΤΟΤΕ ΜΑΧ <-- ΠΑΡΕΑ[Λ] ΘΕΣΗ <-- Λ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'Η ΜΕΓΑΛΥΤΕΡΗ ΠΑΡΕΑ: ' ΓΡΑΨΕ 'ΑΣΟΙ: ', ΘΕΣΗ ΓΡΑΨΕ 'ΜΕΛΗ: ', ΜΑΧ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Πρόσφατα σχόλια