ΓΡΑΨΕ ΑΛΓΟΡΙΘΜΟ ΠΟΥ ΔΙΑΒΑΖΕΙ 100 ΑΚΕΡΑΙΟΥΣ ΑΡΙΘΜΟΥΣ ΣΤΟ ΔΙΑΣΤΗΜΑ (1,20) ΚΑΙ ΥΠΟΛΟΓΙΖΕΙ ΠΟΣΕΣ ΦΟΡΕΣ ΔΙΑΒΑΣΤΗΚΕ Ο ΚΑΘΕ ΑΡΙΘΜΟΣ ΞΑΝΑ. ( ΠΧ ΤΟ 2 ΔΟΘΗΚΕ 5 ΦΟΡΕΣ). ΠΟΙΑ ΕΙΝΑΙ Η ΒΕΛΤΙΣΤΗ ΛΥΣΗ ΣΕ ΕΥΤΗΝ ΤΗΝ ΑΣΚΗΣΗ; ΜΗΠΩΣ ΣΑΝ ΑΣΚΗΣΗ ΧΩΛΑΙΝΕΙ ΣΤΗΝ ΔΙΑΤΥΠΩΣΗ ΤΗΣ;
Σαν πρώτη σκέψη.. χρειάζεσαι 20 μετρητές :(
politis, αν μπορείς γράφε πεζά, είναι πιο ευανάγνωστα.
Το διάστημα [1, 20] θέλει μεν έλεγχο δεδομένων εισόδου, αλλά η ουσία δεν είναι εκεί, είναι ότι μπορείς να χρησιμοποιήσεις έναν πίνακα Εμφανίσεις[20] με 20 στοιχεία - μετρητές. Σταματάω εδώ για να μην μαρτυρήσω πολλά. :)
thanks men!!! 8)
μια ενδεικτική λύση:
Αλγόριθμος ασκ
Για ι από 1 μέχρι 20
π[ι] ← 0
Τέλος_επανάληψης
Για ι από 1 μέχρι 100
Αρχή_επανάληψης
Διάβασε α
Μέχρις_ότου α ≥ 1 και α ≤ 20
π[α] ← π[α] + 1
Τέλος_επανάληψης
Για ι από 1 μέχρι 20
Εμφάνισε "Ο ", ι, " διαβαστηκε ", π[ι], " φορες"
Τέλος_επανάληψης
Τέλος ασκ
Παράθεση από: Πανάγος94 στις 25 Δεκ 2011, 01:11:51 ΜΜ
χρησιμοποιήσα πίνακες αλλά τι να κάνουμε....απο το να χρησιμοποιήσεις 20 μετρητές.....
μα 20 μετρητές χρησιμοποίησες όπως ακριβώς είχε προτείνει και ο Άλκης :
"...πίνακα Εμφανίσεις[20] με 20 στοιχεία - μετρητές..."κατά τα άλλα αυτη είναι η βέλτιστη λύση ενδιαφέρουσα δε παραλλαγή- επέκτασή της είναι η δημιουργία σχετικού οριζόντιου ιστογράμματος όπου πρέπει να δημιουργήσουμε αντίστοιχο δισδιάστατο πίνακα όπου θα γεμίζουμε για κάθε στοιχείο , έστω i, με κάποιο σύμβολο πχ "*" τις θέσεις από την (100, i) μέχρι την (100-Εμφανίσεις
, i) ...