FizzBuzz è un popolare gioco matematico spesso usato come esercizio per insegnare ai bambini i concetti di divisione e multipli. Questo gioco può essere utilizzato sia come strumento didattico per insegnare i concetti di divisione ai bambini, sia come esercizio di programmazione per valutare le abilità di programmazione di base.
L’obiettivo è generare una sequenza di numeri da 1 a N, sostituendo determinati numeri con parole specifiche in base a determinate regole. Per ogni numero nella sequenza, si applicano le seguenti regole:
- Se il numero è divisibile sia per 3 che per 5, anziché stampare il numero, si stampa “FizzBuzz“.
- Se il numero è solo divisibile per 3, si stampa “Fizz”.
- Se il numero è solo divisibile per 5, si stampa “Buzz”.
- Se il numero non è divisibile né per 3 né per 5, si stampa semplicemente il numero stesso.
L’obiettivo è creare una sequenza di numeri in cui i multipli di 3 vengono sostituiti da “Fizz”, i multipli di 5 vengono sostituiti da “Buzz”, e i multipli di entrambi 3 e 5 vengono sostituiti da “FizzBuzz”.
Fizz Buzz in Python
Procedendo per gradi, un programmatore principiante potrebbe essere tentato dallo scrivere qualcosa del genere, considerando che i casi in gioco sono soltanto tre per cui servono tre condizioni per tutti i numeri che vanno da 1 ad N:
def fizzbuzz(n):
# Iniziamo un ciclo che va da 1 fino a n (incluso)
for i in range(1, n+1):
# Se i è divisibile per 3, stampiamo "Fizz"
if i % 3 == 0:
print("Fizz")
# Altrimenti, se i è divisibile per 5, stampiamo "Buzz"
elif i % 5 == 0:
print("Buzz")
# Altrimenti, se non è divisibile né per 3 né per 5, stampiamo "FizzBuzz"
else:
print("FizzBuzz")
# Assegniamo un valore di esempio a n e chiamiamo la funzione fizzbuzz con questo valore
n = 10
fizzbuzz(n)
A leggerla così potrebbe sembrare corretto, ma basta lanciare il programma per rendersi conto che non tira fuori quello che servirebbe. La sequenza risultante infatti è solo parzialmente corretta:
FizzBuzz
FizzBuzz
Fizz
FizzBuzz
Buzz
Fizz
FizzBuzz
FizzBuzz
Fizz
Buzz
Non abbiamo considerato un caso importante, in questo caso, che consiste in quello in cui viene stampato il numero direttamente.
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
Per fare questo, ci rendiamo conto che i casi da considerare sono in realtà 4:
- Se un numero è divisibile solo per 3, viene sostituito con “Fizz”.
- Se un numero è divisibile solo per 5, viene sostituito con “Buzz”.
- Se un numero è divisibile sia per 3 che per 5, viene sostituito con “FizzBuzz”.
- Se un numero non è divisibile né per 3 né per 5, rimane invariato e viene semplicemente stampato.
Chiarito questo, scriviamo:
# Definiamo una funzione chiamata fizzbuzz che prende un parametro n def fizzbuzz(n): # Iniziamo un ciclo che va da 1 fino a n (incluso) for i in range(1, n+1): # Se i è divisibile per 3, stampiamo "Fizz" if i % 3 == 0: print("Fizz") # Altrimenti, se i è divisibile per 5, stampiamo "Buzz" elif i % 5 == 0: print("Buzz") # Altrimenti, se non è divisibile né per 3 né per 5, stampiamo "FizzBuzz" else: print("FizzBuzz") # Assegniamo un valore di esempio a n e chiamiamo la funzione fizzbuzz con questo valore n = 10 fizzbuzz(n)
Fizz Buzz in C++
#include <iostream> using namespace std; void fizzbuzz(int n) { for (int i = 1; i <= n; ++i) { if (i % 3 == 0 && i % 5 == 0) { cout << "FizzBuzz" << endl; } else if (i % 3 == 0) { cout << "Fizz" << endl; } else if (i % 5 == 0) { cout << "Buzz" << endl; } else { cout << i << endl; } } } int main() { int n = 20; // Puoi cambiare questo numero per visualizzare la sequenza fino a un limite diverso fizzbuzz(n); return 0; }
👇 Contenuti da non perdere 👇
- Internet 💻
- Lavoro 🔧
- Programmare 🖥
- Scrivere 🖋
- Spiegoni artificiali 🎓
- 💬 Il nostro canale Telegram: iscriviti
- 🟢 NTLDR is missing (Windows XP): come risolverlo e da cosa dipende
- 🟡 Quanta banda consuma Skype in videocall (GUIDA)
- 🔴 Che cos’è la modalità aereo