- 1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
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
# 求出每一项的阶乘结果
for fNum in range(1, num1+1):
factoriaNum *= fNum
# 将所有阶乘相加
sum0 += factoriaNum
print(sum0)
- 4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
sum1 = 0
for num1 in range(1, 21):
factoriaNum2 = 1
# 计算每一项阶乘的结果
for fNum in range(1, num1+1):
factoriaNum2 *= fNum
# 将所有阶乘的倒数相加
factoriaNum2 = 1.0/factoriaNum2
# print(factoriaNum2)
sum1 += factoriaNum2
print(sum1)
- 5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
sum2 = 0
while True:
num2 = float(input('请输入一个正数: '))
if num2 != 0:
sum2 += num2
else:
break
print(sum2)
- 6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。
a = int(input('请输入a:'))
num = int(input('请输入数字个数:'))
sum3 = 0
for n in range(1, num+1):
everyNum = 0
# 得到 需要计算的每一个数(2,22,222。。。)
for i in range(n):
everyNum += (a*10**i)
# print(everyNum)
sum3 += everyNum
print(sum3)
- 7.输入三个整数x,y,z,请把这三个数由小到大输出。
x = int(input('输入整数x:'))
y = int(input('输入整数y:'))
z = int(input('输入整数z:'))
# 以原数为从大到小的顺序考虑(操作步骤最多)
#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):
# 每一行中 当j==i 该行的乘法口诀已经考虑完
for j in range(1, i+1):
# 每一行都需从1xi 开始,j在前 每一行未算完不能换行 增加end=','以','结尾
print('%dx%d=%d'%(j, i, i*j), end=',')
# 输入完每一行需要换行
print('\n')
- 10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
#假定有x匹大马,y匹中马,100-x-y匹小马, x < 100/3 y <= (100 - 3*x) 进行遍历求值
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.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
# 假定公鸡x只,母鸡y只 小鸡100-x-y只,x <= 100/5 y <= (100 - 5*x) 进行遍历求值
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.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
#假定买洗发水x瓶,香皂y块 则牙刷(100-15*x-2*y)/5根,x <= 100/15 y <= (100 - 15*x) 进行遍历求值
for x in range(7):
for y in range((100 - 15*x)//2 + 1):
if (100-15*x-2*y) % 5 == 0:
print('洗发水%d瓶,香皂%d块 则牙刷%d根'%(x, y, (100-15*x-2*y) / 5))
程序解决实际数学问题时,通常利用计算机的高性能,采用穷举法,结合循环 及判断语句 得到想要的结果。