FizzBuzzWhizz的JAVA實現

/**
 * 純粹湊熱鬧,隨便寫了一下,發出來留個印~~~~^_^
 * @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));
	}

}
相關文章
相關標籤/搜索