聽說能答對這十道題的都是python牛人

2021-08-19 23:56:43 字數 2417 閱讀 5580

1.題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 

程式源**:

# -*- coding: utf-8 -*-for i in

range(1,5):

for j in

range(1,5):

for k in

range(1,5):

if (i != j) and (i != k) and (j != k):

print i,j,k

2.題目:企業發放的獎金根據利潤提成。利潤(i)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數?

程式分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。

方法一: 這種方法是我用數學的原理做的,就是把每種情況都列出乙個表示式,最後簡化表示式,然後直接根據輸入的利潤 i 來計算表示式的值,也就是獎金總數。就是把獎金疊加起來,具體演算法還是要在紙上計算,這種方法適用於初學編碼的人,比如我,用最笨的數學思路解決問題,就是說在數學上你是按照什麼方法做的,然後把他轉化成**,就比較容易理解了。

方法二:這種方法就比較難懂了,適合於基礎好的人。

3.題目:乙個整數,它加上100和加上268後都是乙個完全平方數,請問該數是多少?

程式分析:在10000以內判斷,將該數加上100後再開方,加上268後再開方,如果開方後的結果滿足如下條件,即是結果。這裡要用到數學中的開方函式 sqrt。

4.題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。

思路:先把輸入的日期進行分割,分割成年,月,日三個數字,再按照實際情況依次編寫。

5.題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。

程式分析一:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。

程式分析二:用乙個變數來儲存最小值,三個數進行比較後兩兩交換,這是最常用的思路。

程式分析三:用函式sort進行排序,sort函式可以把數字按照從小到大的順序進行重新排列。

6.題目:將乙個列表的資料複製到另乙個列表中。

注意方法一:

方法二:使用「+」來連線兩個列表,即就是把l2列表的資料複製到l1列表中。

方法三:使用列表[:]。切片的方法,大家都知道如果不指定start和end,則表示輸出該列表的所以元素。

# -*- coding: utf-8 -*-

a = [1, 2, 3]

#把列表a複製到列表b

b = a[:]

print b

7.題目:輸出9*9乘法口訣表。

程式分析:分行與列考慮,共9行9列,i控制行,j控制列。如果不要求格式的話,就簡單了,可以任意格式輸出,如下:

8.題目:暫停一秒輸出。

程式分析:暫停時間的函式為 time.sleep(),此處可隨意舉例,列表,元組,字典均可。

9.題目:斐波那契數列。

程式分析:斐波那契數列(fibonacci sequence),又稱**分割數列,指的是這樣乙個數列:0、1、1、2、3、5、8、13、21、34、……。 

在數學上,費波那契數列是以遞迴的方法來定義:

方法一:

方法二:

方法三:如果你需要輸出指定個數的斐波那契數列,可以使用以下**:

10.題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

程式分析:經過計算和尋找規律得到,兔子的規律為數列1,1,2,3,5,8,13,21….典型的斐波那契數列,這就是為什麼我要把斐波那契數列數列放在第九題的原因,那麼根據上一題的方法三,我們就非常輕鬆的求得每月兔子的數量。

此外,還有一種比較漂亮的輸出: