最难面试IT公司的测试题

简介: 逛网站时无意间看到一道测试题,看到这标题我吓到了(最难面试IT公司),本以为应该很难完成的,分析之后,花了半小时用python写出来了,各位朋友们也可以测试测试哦。不限语言。这是题目发布网址:https://www.jinshuju.net/f/EGQL3D题如下:问题:你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。

逛网站时无意间看到一道测试题,看到这标题我吓到了(最难面试IT公司),本以为应该很难完成的,分析之后,花了半小时用python写出来了,各位朋友们也可以测试测试哦。不限语言。

这是题目发布网址:https://www.jinshuju.net/f/EGQL3D


题如下:

问题:

你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有100名学生在上课。游戏的规则是:


1. 你首先说出三个不同的特殊数,要求必须是个位数,比如357

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

分析:

程序获取3个个位数特殊值,然后循环从1说到100,如满足问题中与特殊值的关系,则按指定的输出。


对于上述问题描述中的关系,优先级分析如下:

1、如果数中包含了第一个数,忽略其它规则。说:Fizz

2、如同时是三个数的倍数,说:FizzBuzzWhizz

3、所报数字同时是两个特殊数倍数,即第12个数的倍数说:FizzBuzz,第13个数的倍数说:FizzWhizz ,第23个数的倍数说:BuzzWhizz

4、所报数是第一个数的倍数,说:Fizz

5、所报数是第二个数的倍数,说:Buzz

6、所报数是第三个数的倍数,说:Whizz

7、如上面都不是,说:当前数字



解题代码:

#!/usr/bin/python
#authon:yangrong
#date:2014-04-29
#mail:10286460@qq.com
try:
       num=raw_input('Please input three digit,and numbers less than 10,Example input:3,5,7   \ninput:').split(',')
       if 1<=int(num[0])<10 and 1<=int(num[1])<10  and1<=int(num[2])<10:pass
       else:   raise IdexError
       for i in range(1,101):
                if num[0] in str(i):print'Fizz'
                elif i%int(num[0])==0 and  i%int(num[1])==0  and i%int(num[2])==0 :print 'FizzBuzzWhizz'
                elif i%int(num[0])==0 andi%int(num[1])==0:print 'FizzBuzz'
                elif i%int(num[1])==0 andi%int(num[2])==0:print 'BuzzWhizz'
                elif i%int(num[0])==0 andi%int(num[2])==0:print 'FizzWhizz'
                elif i%int(num[0])==0:print'Fizz'
                elif i%int(num[1])==0:print'Buzz'
                elif i%int(num[2])==0:print'Whize'
                else:print i
except:
       print 'Please input three digit,and numbers less than 10. Example: 3,5,7'


执行效果:

如果输入的数值不是3个个位数,则提示并退出,如下面两次测试。

root@yangrong:/python# python Test.py

Please input three digit,and numbers lessthan 10, Example input:3,5,7  

input: a,b,c

Please input three digit,and numbers lessthan 10. Example: 3,5,7

root@yangrong:/python# python Test.py

Please input three digit,and numbers lessthan 10, Example input:3,5,7  

input: 1,2,100

Please input three digit,and numbers lessthan 10. Example: 3,5,7


输入正确的数值执行效果

root@yangrong:/python# python Test.py

Please input three digit,and numbers lessthan 10, Example input:3,5,7  

input: 3,5,7

1

2

Fizz

4

Buzz

Fizz

Whize

8

Fizz

Buzz

11

Fizz

Fizz

Whize

FizzBuzz

16

17

Fizz

19

Buzz

FizzWhizz

22

Fizz

Fizz

Buzz

26

Fizz

Whize

29

Fizz

Fizz

Fizz

Fizz

Fizz

Fizz

Fizz

Fizz

Fizz

Fizz

Buzz

41

FizzWhizz

Fizz

44

FizzBuzz

46

47

Fizz

Whize

Buzz

Fizz

52

Fizz

Fizz

Buzz

Whize

Fizz

58

59

FizzBuzz

61

62

Fizz

64

Buzz

Fizz

67

68

Fizz

BuzzWhizz

71

Fizz

Fizz

74

FizzBuzz

76

Whize

Fizz

79

Buzz

Fizz

82

Fizz

FizzWhizz

Buzz

86

Fizz

88

89

FizzBuzz

Whize

92

Fizz

94

Buzz

Fizz

97

Whize

Fizz

Buzz


写完之后,发现代码非常凌乱,一开始用了好多的循环完成了功能,后来思考之后把那些循环去掉,换成elif来写的。代码简洁了一半。正如这道题要求所说:

即使简单的代码,做到尽善尽美一样难能可贵,所以,提交之前,请想一想,它是不是可以更卓越





相关文章
|
2月前
|
Web App开发 编解码 前端开发
面试题22:如何测试Web浏览器的兼容性?
面试题22:如何测试Web浏览器的兼容性?
|
2月前
|
测试技术
面试题3: 描述测试用例设计的完整过程
面试题3: 描述测试用例设计的完整过程
|
3月前
|
程序员
面试高频题:开发人员说不是bug,测试如何答复?
面试高频题:开发人员说不是bug,测试如何答复?
|
2月前
|
运维 算法 程序员
程序员去国企:长城资产IT岗位秋招面试记录
【2月更文挑战第7天】本文介绍2024届秋招中,中国长城资产管理股份有限公司的信息技术岗岗位一面的面试基本情况、提问问题等~
|
2月前
|
存储 安全 测试技术
面试题11: 如何测试一个APP?
面试题11: 如何测试一个APP?
面试题11: 如何测试一个APP?
|
2月前
|
SQL 安全 测试技术
面试题10: 如何测试一个网站?
面试题10: 如何测试一个网站?
|
2月前
|
敏捷开发 测试技术
面试题9:常见测试模型有哪些?
面试题9:常见测试模型有哪些?
|
2月前
|
测试技术
面试题8: 如何确定测试需求的关键场景和细节?
面试题8: 如何确定测试需求的关键场景和细节?
|
2月前
|
存储 缓存 测试技术
面试题6: 系统测试策略有哪些?
面试题6: 系统测试策略有哪些?
|
2月前
|
SQL Web App开发 存储
面试题5: 如何编写提交给用户的测试报告?
面试题5: 如何编写提交给用户的测试报告?
面试题5: 如何编写提交给用户的测试报告?