Λέμε ότι δύο φυσικοί αριθμοί είναι στην ίδια “παρέα” όταν έχουν το ίδιο πλήθος άσων (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
    ΑΝ ΜΑΧ < ΠΑΡΕΑ[Λ] ΤΟΤΕ
      ΜΑΧ <-- ΠΑΡΕΑ[Λ]
      ΘΕΣΗ <-- Λ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Η ΜΕΓΑΛΥΤΕΡΗ ΠΑΡΕΑ: '
  ΓΡΑΨΕ 'ΑΣΟΙ: ', ΘΕΣΗ
  ΓΡΑΨΕ 'ΜΕΛΗ: ', ΜΑΧ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ