拉勾网ThoughtWorks面试题java代码

今天看了一道题感觉很有意思就动手写了一下,对于一个新手来说,很有练习意义,我就把题目和代码发出来大家参考一下,希望能提提意见

你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有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。

现在,我们需要你完成一个程序来模拟这个游戏,它首先接受3个特殊数,然后输出100名学生应该报数的数或单词。

java代码如下

public  class Man {

int int1;
int int2;
int int3;
static int index=1;
static String str1="三";
static String str2="五";
static String str3="七";
String string="";

public static void main(String[] args) {
    Man man=new Man(3,5,7);
    for(int i=1;i<=100;i++){
        System.out.println(man.toString());
    }

}
public  Man(int int1,int int2,int int3){
    this.int1=int1;
    this.int2=int2;
    this.int3=int3;
}
public  String toString(){
    if(index%10==int1){
        index++;
        return str1;
    }
    if(index%10==int2){
        index++;
        return str2;
    }
    if(index%10==int2){
        index++;
        return str3;
    }
    if(index%int1==0){
        string+=str1;
    }
    if(index%int2==0){
        string+=str2;
    }
    if(index%int3==0){
        string+=str3;
    }
    if(string==""){
        return Integer.toString(index++);
    }
    index++;
    String string1=string;
    string="";
    return string1;
}
阅读更多
想对作者说点什么? 我来说一句

FizzBuzzWhizz_1

2014年04月29日 108KB 下载

没有更多推荐了,返回首页

不良信息举报

拉勾网ThoughtWorks面试题java代码

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭