leetcode-412 -Fizz Buzz-(fizz bzz)-java
阿新 • • 發佈:2018-11-11
題目及測試
package pid412; /* Fizz Buzz 寫一個程式,輸出從 1 到 n 數字的字串表示。 1. 如果 n 是3的倍數,輸出“Fizz”; 2. 如果 n 是5的倍數,輸出“Buzz”; 3.如果 n 同時是3和5的倍數,輸出 “FizzBuzz”。 示例: n = 15, 返回: [ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz" ] */ import java.util.List; public class main { public static void main(String[] args) { int [] testTable = {15,8,21}; for (int ito : testTable) { test(ito); } } private static void test(int ito) { Solution solution = new Solution(); List<String> rtn; long begin = System.currentTimeMillis(); System.out.print(ito); System.out.println(); //開始時列印陣列 rtn= solution.fizzBuzz(ito);//執行程式 long end = System.currentTimeMillis(); System.out.println("rtn=" ); System.out.print(rtn); for(String str:rtn){ System.out.print(str+" "); } System.out.println(); System.out.println("耗時:" + (end - begin) + "ms"); System.out.println("-------------------"); } }
解法1(成功,6ms,較慢)
不用對數進行mod,直接設定mod引數,mod3,mod5,每次+1,到3,5,為0
package pid412; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; public class Solution { public List<String> fizzBuzz(int n) { int mod3=1; int mod5=1; List<String> result=new LinkedList<>(); for(int i=1;i<=n;i++){ if(mod3==0&&mod5==0){ result.add("FizzBuzz"); } else if (mod3==0) { result.add("Fizz"); } else if (mod5==0) { result.add("Buzz"); } else{ result.add(String.valueOf(i)); } mod3++; if(mod3==3){ mod3=0; } mod5++; if(mod5==5){ mod5=0; } } return result; } }
其餘剩餘別人的做法是直接對i%3的做法,還有i變為string型別除了string.valueof(i) 還有i+""