栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

FizzBuzz

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FizzBuzz

FizzBuzz
问题描述
假设有这样一个场景:你今年11岁了,在下课前的五分钟,你的数学老师决定给大家玩个"游戏"来让课堂气氛更"有趣"。他让大家起立,他会并轮流指向每位学生,
指到谁,谁就报数,从1开始。 游戏的"有趣"之处在于,如果这个数可以被3整除,你就要改为说"Fizz",如果能被5整除,就改为说"Buzz"。
现在,你的数学老师开始轮流指向每个同学,他们开心的喊出"1!"、"2!"、"Fizz!"、"4!"、"Buzz!"...
现在,他故意指向你,时间静止了...你卡壳了,你手心冒汗,最后,你终于说出"Fizz!"。逃过一劫,手指继续指向别人。
现在,为了避免当众出丑,你需要把完整的清单打印出来,这样的话,你就知道你该说什么了。你们班大概有33名学生,他可能会在下课铃响之前把每个人指三遍。
下次数学课是在周四,请你开始写代码,打印从1到100的数字,但是3的倍数要打印"Fizz"而不是数字,同样,5的倍数要打印"Buzz"。如果同时是3和5的倍数,
打印"FizzBuzz"。

示例输出:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
...

方法1
import java.util.*
public class FizzBuzz{
    public static List FizzBuzz(int num){
    List result=new ArrayList<>();
    for(int i=1;i<=num;i++){
        if(i%3==0){
            str+="Fizz";
        }
        if(i%5==0){
            str+="Buzz";
        }
        if(str==""){
            result.add(Integer.toString(i));
        }
        else{
            result.add(str);
        }
        return result;
    }
    }

    public static void main(String[] args){
    int num=100;
    //Scanner sc = new Scanner(System.in);
    //int num=sc.nextInt();
    List result=FizzBuzz(num);
    //System.out.println(result);
    Iterator it=result.iterator();
    while(it.hasNext()){
        System.out.println(it.next());
    }
    }
}

方法2

import java.util.*
public class FizzBuzz{
    public static List FizzBuzz(int num){
    List result=new ArrayList<>();
    HashMap Dict=new HashMap<>();
    Dict.put(3,"Fizz");
    Dict.put(5,"Buzz");
    for(int i=1;i<=num;i++){
        String str="";
        Set key=Dict.keySet();
        Iterator it=key.iterator();
        while(it.hasNext()){
            int temp=it.next();
            String tempstr=String.valueOf(temp);
            if(i%temp==0){
                str+=Dict.get(temp);
            }
        }
        if(str==""){
            result.add(Integer.toString(i));
        }
        else{
            result.add(str);
        }
        return result;
    }
    }

    public static void main(String[] args){
    int num=100;
    //Scanner sc = new Scanner(System.in);
    //int num=sc.nextInt();
    List result=FizzBuzz(num);
    //System.out.println(result);
    Iterator it=result.iterator();
    while(it.hasNext()){
        System.out.println(it.next());
    }
    }
}

扩展:
如果数字能被3整除,或者数字中包含3,就说fizz。
如果数字能被5整除,或者数字中包含5,就说buzz。

扩展1
import java.util.*
public class FizzBuzz{
    public static List FizzBuzz(int num){
    List result=new ArrayList<>();
    for(int i=1;i<=num;i++){
        if(i%3==0||String.valueOf(i).contains("3")){
            str+="Fizz";
        }
        if(i%5==0||String.valueOf(i).contains("5")){
            str+="Buzz";
        }
        if(str==""){
            result.add(Integer.toString(i));
        }
        else{
            result.add(str);
        }
        return result;
    }
    }

    public static void main(String[] args){
    int num=100;
    //Scanner sc = new Scanner(System.in);
    //int num=sc.nextInt();
    List result=FizzBuzz(num);
    //System.out.println(result);
    Iterator it=result.iterator();
    while(it.hasNext()){
        System.out.println(it.next());
    }
    }
}

扩展2

import java.util.*
public class FizzBuzz{
    public static List FizzBuzz(int num){
    List result=new ArrayList<>();
    HashMap Dict=new HashMap<>();
    Dict.put(3,"Fizz");
    Dict.put(5,"Buzz");
    for(int i=1;i<=num;i++){
        String str="";
        Set key=Dict.keySet();
        Iterator it=key.iterator();
        while(it.hasNext()){
            int temp=it.next();
            String tempstr=String.valueOf(temp);
            if(i%temp==0||String.valueOf(i).contains(tempstr)){
                str+=Dict.get(temp);
            }
        }
        if(str==""){
            result.add(Integer.toString(i));
        }
        else{
            result.add(str);
        }
        return result;
    }
    }

    public static void main(String[] args){
    int num=100;
    //Scanner sc = new Scanner(System.in);
    //int num=sc.nextInt();
    List result=FizzBuzz(num);
    //System.out.println(result);
    Iterator it=result.iterator();
    while(it.hasNext()){
        System.out.println(it.next());
    }
    }
}
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号