412. Fizz Buzz

来源:互联网 发布:创可贴的网络意思 编辑:程序博客网 时间:2024/05/29 05:02

问题:

Write a program that outputs the string representation of numbers from 1 to n.

But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.

Example:

n = 15,Return:[    "1",    "2",    "Fizz",    "4",    "Buzz",    "Fizz",    "7",    "8",    "Fizz",    "Buzz",    "11",    "Fizz",    "13",    "14",    "FizzBuzz"]
分析:

1.被3整除返回Fizz,被5整除返回Buzz,被15整除返回FizzBuzz

 public List<String> fizzBuzz(int n) {        List<String> lists = new ArrayList<>();        int i = 1;        while(i<=n){        if(i%3==0 && i%5 == 0){        lists.add("FizzBuzz");        }        else        if(i%5==0){        lists.add("Buzz");        } else        if(i%3==0){        lists.add("Fizz");        }else        lists.add(i+"");        i++;        }        return lists;    }
2.

public List<String> fizzBuzz(int n) {        List<String> ret = new ArrayList<String>(n);        for(int i=1,fizz=0,buzz=0;i<=n ;i++){            fizz++;            buzz++;            if(fizz==3 && buzz==5){                ret.add("FizzBuzz");                fizz=0;                buzz=0;            }else if(fizz==3){                ret.add("Fizz");                fizz=0;            }else if(buzz==5){                ret.add("Buzz");                buzz=0;            }else{                ret.add(String.valueOf(i));            }        }         return ret;    }



0 0