פיז באז באז Leetcode


רמת קושי קַל
נשאל לעתים קרובות בלומברג מיקרוסופט
מחרוזת

בבעיית Fizz Buzz נתנו מספר n, הדפיסו את מחרוזת ייצוג של מספרים מ -1 עד n עם התנאים הנתונים:

  1. הדפס "Fizz" למכפילים של 3.
  2. הדפס "באז" למכפילים של 5.
  3. הדפס את "FizzBuzz" עבור מכפילים של 3 ו -5.
  4. אחרת, הדפס את המספר בפורמט מחרוזת.

דוגמה

קלט:

n = 4

פלט:

1

2

סחרחורת

4

אלגוריתם לפיז באז

  1. בוטל על המספרים מ -1 עד n (משתנה הלולאה הוא i).
  2. עבור כל מספר, אם הוא מתחלק ב -3 וב- 5 כלומר, i% 3 = 0 ו- i% 5 = 0ולאחר מכן הדפס את "FizzBuzz".
  3. אחרת, אם המספר מתחלק ב -3 כלומר, i% 3 = 0, ואז הדפיס "Fizz".
  4. אחרת, אם המספר מתחלק ב -5 כלומר, i% 5 = 0, הדפיסו "באז".
  5. אחרת, הדפיס את המספר כמחרוזת.

יישום

תוכנית C ++ עבור Fizz Buzz Leetcode

#include<bits/stdc++.h>
using namespace std;
void fizzbuzz(int n){
    for(int i=1;i<=n;i++){
        if(i%3 == 0 && i%5==0){
            cout<<"Fizzbuzz\n";
        }
        else if(i%3 == 0){
            cout<<"Fizz\n";
        }
        else if(i%5 == 0){
            cout<<"Buzz\n";
        }
        else{
            cout<<to_string(i)<<"\n";
        }
    }
}
int main(){
    int n;
    cin>>n;
    fizzbuzz(n);
}
14
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14

תוכנית JAVA עבור Fizz Buzz Leetcode

import java.util.Scanner;
class Main { 
    static void fizzbuzz(int n){
        for(int i=1;i<=n;i++){
            if(i%3 == 0 && i%5==0){
                System.out.println("Fizzbuzz");
            }
            else if(i%3 == 0){
                System.out.println("Fizz");
            }
            else if(i%5 == 0){
                System.out.println("Buzz");
            }
            else{
                System.out.println(Integer.toString(i));
            }
        }
    }
  
    public static void main(String args[]) 
    { 
        int n;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        fizzbuzz(n);
    } 
}
7
1
2
Fizz
4
Buzz
Fizz
7

וריאציות

כתוב "Fizz" למספר המתחלק ב- 4 ו- "Buzz" למספר המתחלק ב- 8, הדפס כל תשובה תקפה. במקרה זה, מספרים הניתנים לחלוקה ב- 8 מתחלקים גם ב- 4 שכן 8 הוא מכפלה של 4. לפיכך יתכנו תשובות תקפות מרובות לשאלה זו מכיוון שבמכפיל של 8 נוכל לבחור "Fizz" או "Buzz". גם אם אתה מתבונן בזהירות אז נוכל להחליף את כל המספרים המתחלקים ב- 4 ב- "Fizz", זו גם תשובה תקפה.

הערה: התבונן בזהירות תוך כדי פתרון שאלה זו כיוון שראינו שאם המספרים הנתונים מרובים זה בזה, נוכל לקבל תשובות תקפות מרובות.

ניתוח מורכבות

מורכבות זמן

O (n) כאשר n הוא המספר שניתן לנו. כיוון שעלינו לעבור כל מספר פעם אחת מ -1 עד N כדי להדפיס את פורמט המחרוזת.

מורכבות בחלל

O (1) מכיוון שאיננו משתמשים או יוצרים מרחב עזר נוסף.

הפניות