leetcode 412. Fizz Buzz

来源:互联网 发布:网络项目投标书 编辑:程序博客网 时间:2024/06/15 17:37

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"]

这个非常的简单了。需要注意的是list是interface,不能直接new list

import java.util.ArrayList;import java.util.List;public class Fizz_Buzz_412 {public List<String> fizzBuzz(int n) {List<String> result=new ArrayList<String>();for(int i=1;i<=n;i++){if(i%15==0){result.add("FizzBuzz");}else if(i%3==0){result.add("Fizz");}else if(i%5==0){result.add("Buzz");}else{result.add(String.valueOf(i));}}return result;}public static void main(String[] args) {// TODO Auto-generated method stubFizz_Buzz_412 f=new Fizz_Buzz_412();List<String> list=f.fizzBuzz(15);for (int i = 0; i < list.size(); i++) {    System.out.println(list.get(i));};}}
此外,发现了大神的不用%的解法,这个思路也是很妙啊!
public class Solution {    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
原创粉丝点击