- 1.控制臺輸入年齡,根據(jù)年齡輸出不同的提示(例如:老年人,青壯年,成年人,未成年,兒童)
age = int(input('輸入一個年齡: '))
if age >= 60:
print('老年人')
elif age >= 40:
print('青壯年')
elif age >= 18:
print('成年人')
elif age >= 7:
print('未成年')
else:
print('兒童')
factoriaNum = 1
for i in range(1, 6):
factoriaNum *= i
print(factoriaNum)
- 3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加變成了累乘。
sum0 = 0
for num1 in range(1, 21):
factoriaNum = 1
# 求出每一項(xiàng)的階乘結(jié)果
for fNum in range(1, num1+1):
factoriaNum *= fNum
# 將所有階乘相加
sum0 += factoriaNum
print(sum0)
- 4.計(jì)算 1+1/2!+1/3!+1/4!+...1/20!=?
sum1 = 0
for num1 in range(1, 21):
factoriaNum2 = 1
# 計(jì)算每一項(xiàng)階乘的結(jié)果
for fNum in range(1, num1+1):
factoriaNum2 *= fNum
# 將所有階乘的倒數(shù)相加
factoriaNum2 = 1.0/factoriaNum2
# print(factoriaNum2)
sum1 += factoriaNum2
print(sum1)
- 5.循環(huán)輸入大于0的數(shù)字進(jìn)行累加,直到輸入的數(shù)字為0,就結(jié)束循環(huán),并最后輸出累加的結(jié)果。
sum2 = 0
while True:
num2 = float(input('請輸入一個正數(shù): '))
if num2 != 0:
sum2 += num2
else:
break
print(sum2)
- 6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。 1.程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值。
a = int(input('請輸入a:'))
num = int(input('請輸入數(shù)字個數(shù):'))
sum3 = 0
for n in range(1, num+1):
everyNum = 0
# 得到 需要計(jì)算的每一個數(shù)(2,22,222。。。)
for i in range(n):
everyNum += (a*10**i)
# print(everyNum)
sum3 += everyNum
print(sum3)
- 7.輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。
x = int(input('輸入整數(shù)x:'))
y = int(input('輸入整數(shù)y:'))
z = int(input('輸入整數(shù)z:'))
# 以原數(shù)為從大到小的順序考慮(操作步驟最多)
#321-231
if x > y:
t = x
x = y
y = t
# 231-213
if y > z:
t = y
y = z
z = t
# 213-123
if x > y:
t = x
x = y
y = t
print(x, y, z)
sideLength = int(input('請輸入三角形的邊長'))
for l in range(sideLength):
# 第l+1行 有 sideLength-l 個 '*'
for x in range(sideLength - l):
print('*', end='')
print('\n')
- 9.輸出9*9口訣。 1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
#第i行
for i in range(1, 10):
# 每一行中 當(dāng)j==i 該行的乘法口訣已經(jīng)考慮完
for j in range(1, i+1):
# 每一行都需從1xi 開始,j在前 每一行未算完不能換行 增加end=','以','結(jié)尾
print('%dx%d=%d'%(j, i, i*j), end=',')
# 輸入完每一行需要換行
print('\n')
- 10.這是經(jīng)典的"百馬百擔(dān)"問題,有一百匹馬,馱一百擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩只小馬馱1擔(dān),問有大,中,小馬各幾匹?
#假定有x匹大馬,y匹中馬,100-x-y匹小馬, x < 100/3 y <= (100 - 3*x) 進(jìn)行遍歷求值
for x in range(34):
for y in range((100 - 3*x) // 2 + 1):
if 3*x +2*y + (100-x-y) / 2 == 100:
print('大馬%d匹,中馬%d匹,小馬%d匹'%(x, y, 100-x-y))
- 11.我國古代數(shù)學(xué)家張邱建在《算經(jīng)》中出了一道“百錢買百雞”的問題,題意是這樣的:5文錢可以買一只公雞,3文錢可以買一只母雞,1文錢可以買3只雛雞。現(xiàn)在用100文錢買100只雞,那么各有公雞、母雞、雛雞多少只?請編寫程序?qū)崿F(xiàn)。
# 假定公雞x只,母雞y只 小雞100-x-y只,x <= 100/5 y <= (100 - 5*x) 進(jìn)行遍歷求值
for x in range(21):
for y in range((100 - 5*x) // 3 + 1):
if 5*x +3*y + (100-x-y) / 3 == 100:
print('公雞%d只,母雞%d只,雛雞%d只'%(x, y, 100-x-y))
- 12.小明單位發(fā)了100元的購物卡,小明到超市買三類洗化用品,洗發(fā)水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些購買結(jié)合?
#假定買洗發(fā)水x瓶,香皂y塊 則牙刷(100-15*x-2*y)/5根,x <= 100/15 y <= (100 - 15*x) 進(jìn)行遍歷求值
for x in range(7):
for y in range((100 - 15*x)//2 + 1):
if (100-15*x-2*y) % 5 == 0:
print('洗發(fā)水%d瓶,香皂%d塊 則牙刷%d根'%(x, y, (100-15*x-2*y) / 5))
程序解決實(shí)際數(shù)學(xué)問題時,通常利用計(jì)算機(jī)的高性能,采用窮舉法,結(jié)合循環(huán) 及判斷語句 得到想要的結(jié)果。