java實(shí)現(xiàn)拉鉤網(wǎng)上的FizzBuzzWhizz問(wèn)題示例
package test;
/**
* 你是一名體育老師,在某次課距離下課還有五分鐘時(shí),你決定搞一個(gè)游戲。此時(shí)有100名學(xué)生在上課。游戲的規(guī)則是:
*
* 1. 你首先說(shuō)出三個(gè)不同的特殊數(shù),要求必須是個(gè)位數(shù),比如3、5、7。
* 2. 讓所有學(xué)生拍成一隊(duì),然后按順序報(bào)數(shù)。
* 3.學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字是第一個(gè)特殊數(shù)(3)的倍數(shù),那么不能說(shuō)該數(shù)字,而要說(shuō)Fizz;如果所報(bào)數(shù)字是第二個(gè)特殊數(shù)(5)的倍數(shù),那么要說(shuō)Buzz;如果所報(bào)數(shù)字是第三個(gè)特殊數(shù)(7)的倍數(shù),那么要說(shuō)Whizz。
* 4.學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字同時(shí)是兩個(gè)特殊數(shù)的倍數(shù)情況下,也要特殊處理,比如第一個(gè)特殊數(shù)和第二個(gè)特殊數(shù)的倍數(shù),那么不能說(shuō)該數(shù)字,而是要說(shuō)FizzBuzz,以此類(lèi)推。如果同時(shí)是三個(gè)特殊數(shù)的倍數(shù),那么要說(shuō)FizzBuzzWhizz。
* 5.學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字包含了第一個(gè)特殊數(shù),那么也不能說(shuō)該數(shù)字,而是要說(shuō)相應(yīng)的單詞,比如本例中第一個(gè)特殊數(shù)是3,那么要報(bào)13的同學(xué)應(yīng)該說(shuō)Fizz。如果數(shù)字中包含了第一個(gè)特殊數(shù),那么忽略規(guī)則3和規(guī)則4,比如要報(bào)35的同學(xué)只報(bào)Fizz,不報(bào)BuzzWhizz。
*
* 現(xiàn)在,我們需要你完成一個(gè)程序來(lái)模擬這個(gè)游戲,它首先接受3個(gè)特殊數(shù),然后輸出100名學(xué)生應(yīng)該報(bào)數(shù)的數(shù)或單詞。
*
* @author liuxuewen
*
*/
public class FizzBuzzWhizz {
public static void main(String[] args) {
int a = 3;/*第一個(gè)特殊字*/
int b = 5;/*第二個(gè)特殊字*/
int c = 7;/*第三個(gè)特殊字*/
int start = 1;/*開(kāi)始報(bào)數(shù)的數(shù)字*/
int end = 100;/*結(jié)束報(bào)數(shù)的數(shù)字*/
String[] output = { "Fizz", "Fizz", "Buzz", "Whizz", "FizzBuzz", "FizzWhizz", "BuzzWhizz", "FizzBuzzWhizz" };/*存放標(biāo)志字符串?dāng)?shù)組*/
int index = -1;/*默認(rèn)字符串索引為-1*/
/*循環(huán)進(jìn)行報(bào)數(shù)*/
for (int i = start; i <= end; i++) {
/*先判斷第5的條件 ,再判斷第三的條件,最后判斷第4的條件*/
index = (i % 10 == a || i / 10 == a) ? 0 : -1;
index = (-1 == index) ? ((i % a == 0 && i % b == 0) ? 4 : (i % a == 0 && i % c == 0) ? 5 : (i % b == 0 && i % c == 0) ? 6 : -1) : index;
index = (-1 == index) ? ((i % a == 0) ? 1 : (i % b == 0) ? 2 : (i % c == 0) ? 3 : -1) : index;
/*輸出結(jié)果*/
System.out.println((-1 == index ? i : output[index]));
}
}
}
相關(guān)文章
SpringMVC中處理靜態(tài)資源的過(guò)程詳解
本文給大家介紹SpringMVC中處理靜態(tài)資源的過(guò)程,結(jié)合示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
vue+ java 實(shí)現(xiàn)多級(jí)菜單遞歸效果
這篇文章主要介紹了vue+ java 實(shí)現(xiàn)多級(jí)菜單遞歸效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
IDEA中Mybatis的MGB使用逆向工程配置的詳細(xì)教程
這篇文章主要介紹了IDEA中Mybatis的MGB使用逆向工程配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
SpringBoot過(guò)濾敏感詞的兩種實(shí)現(xiàn)方式
Spring Boot本身并不直接提供過(guò)濾敏感詞的功能,但你可以使用第三方庫(kù)或者自定義過(guò)濾器來(lái)實(shí)現(xiàn)這個(gè)需求,所以本文給大家介紹了SpringBoot過(guò)濾敏感詞的兩種實(shí)現(xiàn)方式,感興趣的朋友可以參考下2024-06-06
Java并發(fā)程序刺客之假共享的原理及復(fù)現(xiàn)
前段時(shí)間在各種社交平臺(tái)“雪糕刺客”這個(gè)詞比較火,而在并發(fā)程序中也有一個(gè)刺客,那就是假共享。本文將通過(guò)示例詳細(xì)講解假共享的原理及復(fù)現(xiàn),需要的可以參考一下2022-08-08
解決maven?maven.compiler.source和maven.compiler.target的坑
這篇文章主要介紹了解決maven?maven.compiler.source和maven.compiler.target的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
java開(kāi)發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解
這篇文章主要為大家介紹了java開(kāi)發(fā)主流定時(shí)任務(wù)解決方案全橫評(píng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
PowerJob的HashedWheelTimer工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的HashedWheelTimer工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

