最難面試IT公司的測試題

2021-09-04 01:57:52 字數 3876 閱讀 3751

逛**時無意間看到一道測試題,看到這標題我嚇到了(最難面試it公司),本以為應該很難完成的,分析之後,花了半小時用python寫出來了,各位朋友們也可以測試測試哦。不限語言。

這是題目發布**:

題如下:

你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞乙個遊戲。此時有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

輸出(片段)

fizz

buzz

fizz

whizz

fizz

buzz

fizz

fizz

whizz

fizzbuzz

fizz

buzz

… 一直到100

程式獲取3個個位數特殊值,然後迴圈從1說到100,如滿足問題中與特殊值的關係,則按指定的輸出。

對於上述問題描述中的關係,優先順序分析如下:

1、如果數中包含了第乙個數,忽略其它規則。說:fizz

2、如同時是三個數的倍數,說:fizzbuzzwhizz

3、所報數字同時是兩個特殊數倍數,即第1、2個數的倍數說:fizzbuzz,第1、3個數的倍數說:fizzwhizz ,第2、3個數的倍數說:buzzwhizz

4、所報數是第乙個數的倍數,說:fizz

5、所報數是第二個數的倍數,說:buzz

6、所報數是第三個數的倍數,說:whizz

7、如上面都不是,說:當前數字

#!/usr/bin/python

#authon:yangrong

#date:2014-04-29

#mail:[email protected]

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

fizz

buzz

fizz

whize

fizz

buzz

fizz

fizz

whize

fizzbuzz

fizz

buzz

fizzwhizz

fizz

fizz

buzz

fizz

whize

fizz

fizz

fizz

fizz

fizz

fizz

fizz

fizz

fizz

fizz

buzz

fizzwhizz

fizz

fizzbuzz

fizz

whize

buzz

fizz

fizz

fizz

buzz

whize

fizz

fizzbuzz

fizz

buzz

fizz

fizz

buzzwhizz

fizz

fizz

fizzbuzz

whize

fizz

buzz

fizz

fizz

fizzwhizz

buzz

fizz

fizzbuzz

whize

fizz

buzz

fizz

whize

fizz

buzz

寫完之後,發現**非常凌亂,一開始用了好多的迴圈完成了功能,後來思考之後把那些迴圈去掉,換成elif來寫的。**簡潔了一半。正如這道題要求所說:

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

智商測試題

5個囚犯,分別按1 5號在裝有100顆綠豆的麻袋抓綠豆,規定每個人至少抓一顆,而抓得最多的和最少的人將被處死,而且,他們之間不能交流,但在抓的時候,可以摸出剩下的豆子數。問他們中誰的存活機率最大?1 假設第乙個人抓的綠豆多於20顆,則第二個人秩序比第乙個人少抓一顆,這樣剩下的綠豆少於60顆,分給3個...

智力測試題

國際標準的iq 智力 測試題 請有興趣並且未做的人進去看看以你最快的速度測試,測完以後說說你的智商是多少 心理學用 智力商數 即 iq 來表示乙個人的智力水平。智商通常的演算法為 心理年齡 實際年齡 100 經過研究劃分,智力水平可分為7個等級。1 iq值大於140的是天才 2 在120 140之間...

網路測試題

1 osi參考模型,一共幾層?7層2 tcp ip參考模型,一共幾層?分別是什麼 低到高 五層 物理層,資料鏈路層,網路層,傳輸層,應用層。3,計算機,交換機,網絡卡,防火牆,路由器分別是幾層裝置?應用層 資料鏈路層 物理層 運輸層 網路層 4,mac位址用二進位制表示一共多少位?一共分幾組?48位...