Python3算法基础练习:编程100例(1~5)
Python3基礎(chǔ)練習(xí):編程100例(1~5)
- 1、無(wú)重復(fù)數(shù)字
- 2、發(fā)放獎(jiǎng)金
- 3、完全平方數(shù)
- 4、判斷這一天是這一年的第幾天?
- 5、三個(gè)數(shù)從小到大輸出
1、無(wú)重復(fù)數(shù)字
題目:有四個(gè)數(shù)字:1、2、3、4,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?各是多少?
分析:多層遍歷
代碼:
total=0 for i in range(1,5):for j in range(1,5):for k in range(1,5):if( i != k ) and (i != j) and (j != k):total = total + 1print (i,j,k)print('一共'+str(total)+'種')結(jié)果:
1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1 4 3 2 一共24種2、發(fā)放獎(jiǎng)金
題目:
企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;
利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可提成7.5%;
20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;
40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;
60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?
代碼:
i = int(input('凈利潤(rùn):')) arr = [1000000,600000,400000,200000,100000,0] rat = [0.01,0.015,0.03,0.05,0.075,0.1] r = 0 for idx in range(0,6):if i>arr[idx]:r+=(i-arr[idx])*rat[idx]print ((i-arr[idx])*rat[idx])i=arr[idx] print (r)結(jié)果:
凈利潤(rùn):160000 4500.0 10000.0 14500.03、完全平方數(shù)
題目:一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?
分析:
這是一道數(shù)學(xué)題!
假設(shè)該數(shù)為 x。
1、則:x + 100 = n2, x + 100 + 168 = m2
2、計(jì)算等式:m2 - n2 = (m + n)(m - n) = 168
3、設(shè)置: m + n = i,m - n = j,i * j =168,i 和 j 至少一個(gè)是偶數(shù)
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶數(shù),要么都是奇數(shù)。
5、從 3 和 4 推導(dǎo)可知道,i 與 j 均是大于等于 2 的偶數(shù)。
6、由于 i * j = 168, j>=2,則 1 < i < 168 / 2 + 1。
7、接下來將 i 的所有數(shù)字循環(huán)計(jì)算即可。
代碼:
for i in range(1,85):if 168 % i == 0: # 肯定是偶數(shù)j = 168 / i;if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 : # n = (i- j) / 2 所以 i > jm = (i + j) / 2n = (i - j) / 2x = n * n - 100print(x)結(jié)果:
-99 21 261 15814、判斷這一天是這一年的第幾天?
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
分析:以2021年4月28日為例,應(yīng)該先把前兩個(gè)月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于2時(shí)需考慮多加一天
代碼:
year = 2021 month = 4 day = 28months = (0,31,59,90,120,151,181,212,243,273,304,334) if 0 < month <= 12:sum = months[month - 1] else:print ('data error') sum += day # 閏年 if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)) and (month > 2):sum += 1 print ('it is the %dth day.' % sum)結(jié)果:it is the 118th day.
5、三個(gè)數(shù)從小到大輸出
題目:有三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。
代碼:
nums = [] for i in range(3):x = int(input('num:\n'))nums .append(x) nums.sort() print (nums )結(jié)果:輸入 5 10 3;輸出 3 5 10
總結(jié)
以上是生活随笔為你收集整理的Python3算法基础练习:编程100例(1~5)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双指针算法(四):力扣 88.合并两个有
- 下一篇: Python3算法基础练习:编程100例