資料內容:
實例 001:數(shù)字組合
題目 有四個數(shù)字: 1、2、3、4,能組成多少個互不相同且無重復數(shù)字的三位數(shù)?各是多少?
程序分析 遍歷全部可能,把有重復的剃掉。
total=0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if ((i!=j)and(j!=k)and(k!=i)):
print(i,j,k)
total+=1
print(total)
12345678
簡便方法 用 itertools 中的 permutations 即可。
import itertools
sum2=0
a=[1,2,3,4]
for i in itertools.permutations(a,3):
print(i)
sum2+=1
print(sum2)
12345678
實例 002:“個稅計算”
題目 企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤
(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,求應發(fā)放獎金總數(shù)?
程序分析 分區(qū)間計算即可。
profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):
if profit<=thresholds[i]:
bonus+=profit*rates[i]
profit=0
break
else:
bonus+=thresholds[i]*rates[i]
profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)
1234567891011121314