/** * 純粹湊熱鬧,隨便寫了一下,發出來留個印~~~~^_^ * @ClassName: test * @Description: TODO(學生報號) * 規則: * 你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞一個遊戲。此時有100名學生在上課。遊戲的規則是: * 1. 你首先說出三個不一樣的特殊數,要求必須是個位數,好比三、五、7。 * 2. 讓全部學生拍成一隊,而後按順序報數。 * 3. 學生報數時,若是所報數字是第一個特殊數(3)的倍數,那麼不能說該數字,而要說Fizz;若是所報數字是第二個特殊數(5)的倍數,那麼要說Buzz;若是所報數字是第三個特殊數(7)的倍數,那麼要說Whizz。 * 4. 學生報數時,若是所報數字同時是兩個特殊數的倍數狀況下,也要特殊處理,好比第一個特殊數和第二個特殊數的倍數,那麼不能說該數字,而是要說FizzBuzz, 以此類推。若是同時是三個特殊數的倍數,那麼要說FizzBuzzWhizz。 * 5. 學生報數時,若是所報數字包含了第一個特殊數,那麼也不能說該數字,而是要說相應的單詞,好比本例中第一個特殊數是3,那麼要報13的同窗應該說Fizz。若是數字中包含了第一個特殊數,那麼忽略規則3和規則4,好比要報35的同窗只報Fizz,不報BuzzWhizz。 * @author lichong * @date 2014-5-4 下午2:03:15 */ public class test { /** * 設定特殊數字和響應現實字符 */ public static String[][] specialNo = new String[][] { { "3", "Fizz" }, { "5", "Buzz" }, { "7", "Whizz" } }; /** * * @Title: numberPrint * @Description: TODO(跟進傳入數字判斷是不是特殊數字的倍數傳出結果) * @param num 要判斷的數字 * @return 判斷後輸出,是特殊數字倍數則輸出設定的字符,不是特殊數字輸出傳入字符的String類型 */ public static String numberPrint(int num) { String r = ""; for (int i = 0; i < specialNo.length; i++) { if (num % Integer.valueOf(specialNo[i][0]) == 0) r = r + specialNo[i][1]; } return "".equals(r)?num+"":r; } public static void main(String[] args) { //循環100次,模擬100個同窗 for (int i = 1; i <= 100; i++) System.out.println(numberPrint(i)); } }