你是體育老師,在某節課距離下課還有五分鐘時,你決定搞一個遊戲。此時有100名學生在上課。遊戲的規則是:
1. 你先說出三個不同的特殊數,要求必須是個位數,例如3、5、7。
2. 讓所有學生拍成一隊,然後依序報數。
3. 學生報數時,如果所報數字是第一個特殊數(3)的倍數,那麼不能說該數字,而要說Fizz;如果所報數字
是第二個特殊數(5)的倍數,那麼要說Buzz;如果所報數字是第三個特殊數(7)的倍數,那麼要說Whizz。
4. 學生報數時,若所報數字同時是兩個特殊數的倍數情況下,也要特殊處理,例如第一個特殊數和第二個特殊
數的倍數,那麼不能說該數字,而是要說FizzBuzz, 以此類推。如果同時是三個特殊數的倍數,那麼要說FizzBuzzWhizz。
5. 學生報數時,如果所報數字包含了第一個特殊數,那麼也不能說該數字,而是要說相應的單詞,例如本例中第一個特殊數
是3,那麼要報13的同學應該說Fizz。如果數字中包含了第一個特殊數,那麼忽略規則3和規則4,例如要報35的同學只報Fizz,不報BuzzWhizz。
複製代碼代碼如下:
package com.hq.baoshu;
import java.util.Scanner;
public class Baoshu {
/*
@author HuangQun
jdk版本1.6
window 7 32bit
*/
public static void main(String args[]){
//測試入口
int sum=100;
Scanner sc=new Scanner(System.in);
int num1=0,num2=0,num3=0;
while(num1<=0||num1>=10||num2<=0||num2>=10||num3<=0||num3>=10){
System.out.println("請輸入三個小於10的整數:");
num1=sc.nextInt();
num2=sc.nextInt();
num3=sc.nextInt();
}
for(int i=1;i<=sum;i++){
System.out.println(baoshu(num1,num2,num3,i));//呼叫實作方法
}
}
/*
* 實作方法
*/
public static String baoshu(int num1,int num2,int num3,int i){
StringBuffer talk=new StringBuffer("");
talk=(i+"").indexOf(num1+"")>=0?talk.append("Fizz")
:(i%num1*i%num2*i%num3!=0?talk.append(i)
:(i%num1==0?talk.append("Fizz"):talk)
.append((i%num2==0?"Buzz":""))
.append(i%num3==0?"Whizz":""));
return talk.toString();
}
}