/** * 纯粹凑热闹,随便写了一下,发出来留个印~~~~^_^ * @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)); } }