日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最难面试IT公司的测试题

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最难面试IT公司的测试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

逛網站時無意間看到一道測試題,看到這標題我嚇到了(最難面試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:passelse: raise IdexErrorfor 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來寫的。代碼簡潔了一半。正如這道題要求所說:

即使簡單的代碼,做到盡善盡美一樣難能可貴,所以,提交之前,請想一想,它是不是可以更卓越





總結

以上是生活随笔為你收集整理的最难面试IT公司的测试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。