zoukankan      html  css  js  c++  java
  • FizzBuzzWhizz

    前段时间拉勾的这个面试问题比较火,当时也用Python试了试。

    【拉勾专场】抛弃简历!让代码说话!

    强强联手,互联网垂直招聘专家拉勾网携手全球顶尖IT公司ThoughtWorks共同推出此次代码挑战!等你来打擂!

    此刻到5月4日上午9点,你都可以撰写你的代码,并回传给我们。

    5月4日-5月7日,我们会日以继夜的推敲你的代码;

    5月8日-5月9日,通过代码测试的你,会接到我们温柔的电话;

    5月10日-5月11日,来到ThoughtWorks,感受一天的独特面试(包括逻辑笔试、结对编程、技术对话)!

    大道至简,知易行难!

    我们的题目简约而不简单,千万不要轻敌,即使简单的代码,做到尽善尽美一样难能可贵,所以,提交之前,请想一想,它是不是可以更卓越,有人可以10行搞定,亲,你呢 :) 

    代码要求:

    1,语言不限,Java, C#, Ruby, C++, Js, Python, Scala, objective-C统统可以,小语种也没问题,只要你擅长;

    2,强烈建议写单元测试;

    3,请展示出你超赞的面向对象/函数式编程功底;

    4,建议尽量减少圈复杂度;

    5,请提交可运行的代码,及相关构建脚本/说明文档(代码运行平台和环境);

    FizzBuzzWhizz

    你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有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名学生应该报数的数或单词。比如,
     
    输入
    3,5,7
    输出(片段)

    1
    2
    Fizz
    4
    Buzz
    Fizz
    Whizz
    8
    Fizz
    Buzz
    11
    Fizz
    Fizz
    Whizz
    FizzBuzz
    16
    17
    Fizz
    19
    Buzz 
    一直到100
     
     
    下面是代码,写的很简单,没有用面向对象 ,也没有写单元测试。
     1 #coding:utf8
     2 def    FizzBuzzWhizz(a,b,c):
     3     toSays=("Fizz","Buzz","Whizz")
     4     for x in range(1,101):
     5         say=""
     6         if str(x).find(str(a))>=0:
     7             say=toSays[0]
     8         else:
     9             if x%a==0:
    10                 say=say+toSays[0]
    11             if x%b==0:
    12                 say=say+toSays[1]
    13             if x%c==0:
    14                 say=say+toSays[2]
    15         if len(say)>0:
    16             print say
    17         else:
    18             print x
    19 
    20 if __name__ == '__main__':
    21     FizzBuzzWhizz(3,5,7)
     
  • 相关阅读:
    “error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)
    std::ostringstream 转std::string
    【转载】红外感应模块+蜂鸣器实现简易报警
    分割字符串使用空格
    优秀程序员的 18 大法则【转载】
    解决win10 iot VS编程出现的无法引用错误
    [转载] 程序员如何成功追到女神?
    win8/win10/win2012r2 存储池 冗余分析
    [转载][NAS] 使用win8的“存储池”功能~
    mySQL中删除unique key的语法 (删除某个字段的唯一性)
  • 原文地址:https://www.cnblogs.com/tinker/p/3782709.html
Copyright © 2011-2022 走看看