φιζζ - μπαζζ (Google Interview test)
φιζζ - μπαζζ (Google Interview test)
Λοιπόν μιας και ο Σπύρος άνοιξε τον ασκό του άμαζον, ας δούμε παράλληλα και ένα προβληματάκι της γκουγκλ.
Να γραφεί κώδικας σε οποιαδήποτε γλώσσα (*) o οποίος θα τυπώνει τους ακεραίους από το 1 εώς το 10^7 σε διαδοχικές γραμμές, ώστε να εμφανίζεται φιζζ στα πολλαπλάσια του 659, μπαζζ στα πολλαπλάσια του 947, και φιζζμπαζ στα πολλαπλάσια του 624073.
(* μια γνωστή μου έχει αγαπημένη γλώσσα προγραμματισμού την html)
(*Λύσεις σε σισαρπ δε λαμβάνονται υπόψιν. ούστ)
Τελευταία επεξεργασία από το μέλος Χουργιατς την 19 Ιούλ 2018, 16:38, έχει επεξεργασθεί 2 φορές συνολικά.
- shrike
- Δημοσιεύσεις: 4282
- Εγγραφή: 02 Απρ 2018, 08:39
- Phorum.gr user: Isildur
- Τοποθεσία: Παρά θῖν' ἁλὸς
Re: φιζζ - μπαζζ (Google Interview test)
Το εννοείς ή κάνεις πλάκα; Να ξέρω πώς να απαντήσω...Χουργιατς έγραψε: ↑19 Ιούλ 2018, 16:26Λοιπόν μιας και ο Σπύρος άνοιξε τον ασκό του άμαζον, ας δούμε παράλληλα και ένα προβληματάκι της γκουγκλ.
Να γραφεί κώδικας σε οποιαδήποτε γλώσσα (*) o οποίος θα τυπώνει τους ακεραίους από το 1 εώς το 10^7 σε διαδοχικές γραμμές, ώστε να εμφανίζεται φιζζ στα πολλαπλάσια του 659, μπαζζ στα πολλαπλάσια του 947, και φιζζμπαζ στα πολλαπλάσια του 624073.

Re: φιζζ - μπαζζ (Google Interview test)
Αν ξέρεις τι είδους παιχνίδι είναι το fizz buzz, είναι σχετικά απλή άσκηση.
* Είναι κάτι ανάλογο με το δικό μας εφτά-μπουμ.
* Είναι κάτι ανάλογο με το δικό μας εφτά-μπουμ.
Re: φιζζ - μπαζζ (Google Interview test)
Για να τους εντυπωσιάσεις, πρέπει να ψυλλιαστείς ότι 659 x 947 = 624073. Δηλαδή στον αλγόριθμο σου να τσεκάρεις μονο δύο υπόλοιπα αντί για τρία.
- shrike
- Δημοσιεύσεις: 4282
- Εγγραφή: 02 Απρ 2018, 08:39
- Phorum.gr user: Isildur
- Τοποθεσία: Παρά θῖν' ἁλὸς
Re: φιζζ - μπαζζ (Google Interview test)
Δεν είχα ιδέα τι είναι το fizz buzz, τώρα που το ανέφερες το έψαξα λίγο.Nameless Ghoul έγραψε: ↑20 Ιούλ 2018, 20:15Αν ξέρεις τι είδους παιχνίδι είναι το fizz buzz, είναι σχετικά απλή άσκηση.
* Είναι κάτι ανάλογο με το δικό μας εφτά-μπουμ.
Στο μεταξύ, είχα γράψει λίγες γραμμές κώδικα και νόμιζα ότι το έκανα. Ακόμα το νομίζω, δηλαδή... απλά με το ψάξιμο διάβασα στα αρπαχτά ότι θεωρείται δύσκολο κλπ. Τι να πω; Εγώ σκέφτηκα ότι απλά θα πρέπει ο πρώτος έλεγχος να αφορά τον μεγάλο αριθμό (που είναι το ΕΚΠ των δύο πρώτων) και στη συνέχεια να ελέγχονται οι άλλοι δύο για να δουλέψει. Να υποθέσω ότι κάτι κάπου χάνω κι ότι πρέπει να το ψάξω παραπάνω;

- shrike
- Δημοσιεύσεις: 4282
- Εγγραφή: 02 Απρ 2018, 08:39
- Phorum.gr user: Isildur
- Τοποθεσία: Παρά θῖν' ἁλὸς
Re: φιζζ - μπαζζ (Google Interview test)
Σου είπα στο μεταξύ, ότι όχι απλά το ψυλλιάστηκα, είδα ότι είναι και το ΕΚΠ τους.Nameless Ghoul έγραψε: ↑20 Ιούλ 2018, 20:19Για να τους εντυπωσιάσεις, πρέπει να ψυλλιαστείς ότι 659 x 947 = 624073. Δηλαδή στον αλγόριθμο σου να τσεκάρεις μονο δύο υπόλοιπα αντί για τρία.

Αλλά πρέπει να τσεκάρεις και το 624073, έτσι δεν είναι; Άρα, τρία conditions.
Edit: πχ κάτι τέτοιο δεν στέκει;
Κώδικας: Επιλογή όλων
For r = 1 To 10 ^ 7
If r Mod 624073 = 0 Then
Print r & " φιζζμπαζ"
ElseIf r Mod 947 = 0 Then
Print r & " μπαζζ"
ElseIf r Mod 659 = 0 Then
Print r & " φιζζ"
Else: Print r
End If
Next
Τελευταία επεξεργασία από το μέλος shrike την 20 Ιούλ 2018, 20:36, έχει επεξεργασθεί 1 φορά συνολικά.
Re: φιζζ - μπαζζ (Google Interview test)
Να σε βοηθήσω λίγο ακόμα: Τρία conditions, αλλά δύο υπόλοιπα. Αν δουν ότι υπολογίζεις το υπόλοιπο της διαίρεσης με 624073, κόπηκες.
- shrike
- Δημοσιεύσεις: 4282
- Εγγραφή: 02 Απρ 2018, 08:39
- Phorum.gr user: Isildur
- Τοποθεσία: Παρά θῖν' ἁλὸς
Re: φιζζ - μπαζζ (Google Interview test)
Σόρυ, αλλά μάλλον δεν έχω καταλάβει ποιο είναι το ζητούμενο...Nameless Ghoul έγραψε: ↑20 Ιούλ 2018, 20:33Να σε βοηθήσω λίγο ακόμα: Τρία conditions, αλλά δύο υπόλοιπα. Αν δουν ότι υπολογίζεις το υπόλοιπο της διαίρεσης με 624073, κόπηκες.
Δηλαδή, το παραπάνω που έγραψα θεωρείται λάθος, αλλά θα έστεκε κάτι τέτοιο;
Κώδικας: Επιλογή όλων
For r = 1 To 10 ^ 7
If r Mod 947 = 0 Then
If r Mod 659 = 0 Then
Print r & " φιζζμπαζ"
Else: Print r & " μπαζζ"
Endif
ElseIf r Mod 659 = 0 Then
Print r & " φιζζ"
Else: Print r
End If
Next

Re: φιζζ - μπαζζ (Google Interview test)
Είσαι πάρα πολύ κοντά.
Η λύση που προτείνεις βγάζει σωστό αποτέλεσμα μεν, αλλά το mod είναι σχετικά ακριβός υπολογισμός. Μια λύση με 2 mod αντί για 3 ρίχνει το χρόνο εκτέλεσης στο 66%.
Hint: αποθήκευσε κάπου το αποτέλεσμα των mod. Η τελευταία λύση είναι πιο καλή αλλά υπάρχει μια πιο καθαρή, χωρίς nested if.
Η λύση που προτείνεις βγάζει σωστό αποτέλεσμα μεν, αλλά το mod είναι σχετικά ακριβός υπολογισμός. Μια λύση με 2 mod αντί για 3 ρίχνει το χρόνο εκτέλεσης στο 66%.
Hint: αποθήκευσε κάπου το αποτέλεσμα των mod. Η τελευταία λύση είναι πιο καλή αλλά υπάρχει μια πιο καθαρή, χωρίς nested if.
- shrike
- Δημοσιεύσεις: 4282
- Εγγραφή: 02 Απρ 2018, 08:39
- Phorum.gr user: Isildur
- Τοποθεσία: Παρά θῖν' ἁλὸς
Re: φιζζ - μπαζζ (Google Interview test)
Μα, δεν είναι 3. Είναι το πολύ 2 τα Mod. Σε καμμιά περίπτωση δεν χρησιμοποιούνται και τα 3, έτσι όπως το έγραψα.Nameless Ghoul έγραψε: ↑20 Ιούλ 2018, 20:47Είσαι πάρα πολύ κοντά.
Η λύση που προτείνεις βγάζει σωστό αποτέλεσμα μεν, αλλά το mod είναι σχετικά ακριβός υπολογισμός. Μια λύση με 2 mod αντί για 3 ρίχνει το χρόνο εκτέλεσης στο 66%.
Hint: αποθήκευσε κάπου το αποτέλεσμα των mod. Η τελευταία λύση είναι πιο καλή αλλά υπάρχει μια πιο καθαρή, χωρίς nested if.
Re: φιζζ - μπαζζ (Google Interview test)
Ναι, γι'αυτό λέμε είναι καλύτερη. Αλλά υπάρχει μία ακόμη εκδοχή, πιο "καθαρή", που πιθανόν να υποτιμηθεί σε ανταγωνιστικές συνθήκες π.χ. συνεντεύξεις.
Χιντ: χωρίς else.
Χιντ: χωρίς else.
Re: φιζζ - μπαζζ (Google Interview test)
for(1 .. 10000000)
if(i mod 947==0) 'fizz'
if(i mod 659==0) 'buzz'
if(i mod 947==0) 'fizz'
if(i mod 659==0) 'buzz'
Re: φιζζ - μπαζζ (Google Interview test)
Εγώ που δεν ξέρω από προγραμματισμό μπορώ να παίξω;
θα έκανα πρώτα την διαίρεση του αριθμού με 624073
Αν το υπόλοιπο είναι μηδέν τότε φιζζμπαζ
Αν το υπόλοιπο είναι 659 τότε φιζζ
Αν το υπόλοιπο είναι 947 τότε μπαζ
θα έκανα πρώτα την διαίρεση του αριθμού με 624073
Αν το υπόλοιπο είναι μηδέν τότε φιζζμπαζ
Αν το υπόλοιπο είναι 659 τότε φιζζ
Αν το υπόλοιπο είναι 947 τότε μπαζ
Re: φιζζ - μπαζζ (Google Interview test)
Όχι ακριβώς.
Σκέψου το έτσι:
Μεταξύ του 1 και του 624073, πόσοι είναι φιζζμπαζ;
(Πλησιασες λίγο όμως)
Σκέψου το έτσι:
Μεταξύ του 1 και του 624073, πόσοι είναι φιζζμπαζ;
(Πλησιασες λίγο όμως)
Τελευταία επεξεργασία από το μέλος Nameless Ghoul την 20 Ιούλ 2018, 23:21, έχει επεξεργασθεί 1 φορά συνολικά.
Re: φιζζ - μπαζζ (Google Interview test)
Δεν διαιρείται μονο το 624073k+659 με το 659 αλλα και το 624073k+2*659, 624073k+3*659...
-
- Παραπλήσια Θέματα
- Απαντήσεις
- Προβολές
- Τελευταία δημοσίευση
-
- 162 Απαντήσεις
- 3332 Προβολές
-
Τελευταία δημοσίευση από yorgoschrysikos
07 Δεκ 2024, 12:49
-
-
Νέα δημοσίευση Δημοσκόπηση interview Μάιος 2024
από KRAKEN » 14 Μάιος 2024, 16:45 » σε Εσωτερική Πολιτική - 113 Απαντήσεις
- 2641 Προβολές
-
Τελευταία δημοσίευση από Αλιόσα
03 Ιουν 2024, 12:58
-
-
-
Νέα δημοσίευση Δημοσκόπηση Interview Ιούνιος 2024
από Τοξοβόλος_UK » 04 Ιουν 2024, 10:59 » σε Εσωτερική Πολιτική - 3 Απαντήσεις
- 216 Προβολές
-
Τελευταία δημοσίευση από KRAKEN
04 Ιουν 2024, 18:15
-
-
-
Νέα δημοσίευση Δημοσκόπηση Interview Φεβρουάριος 2025 (2)
από KRAKEN » 25 Φεβ 2025, 19:29 » σε Εσωτερική Πολιτική - 71 Απαντήσεις
- 951 Προβολές
-
Τελευταία δημοσίευση από Jimmy81
26 Φεβ 2025, 02:09
-