往期练习:
Python3算法基础练习:编程100例(1~5)
Python3算法基础练习:编程100例(6 ~ 10)
Python3算法基础练习:编程100例(11 ~ 15)
Python3算法基础练习:编程100例(16 ~ 20)
目录
-
- 21 猴子吃桃问题
- 22.乒乓比赛
- 23.打印菱形
- 24 序列求和
- 25 阶乘求和
21 猴子吃桃问题
题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
分析:从后往前推
代码:
x2 = 1
for day in range(9,0,-1):
x1 = (x2 + 1) * 2
x2 = x1
print (x1)
结果:
22.乒乓比赛
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
分析:列出所有可能性,中间去除不可能的情况,结果就是满足要求的了
代码:
team_2 = ['x','y','z']
# 核心 避免重复参赛
for a in team_2:
for b in team_2:
# 避免重复参赛
if a != b:
for c in team_2:
if a != c and b != c:
if a != 'x' and c != 'x' and c != 'z':
print('a的对手是%s\nb的对手是%s\nc的对手是%s' % (a, b, c))
结果:
23.打印菱形
题目:
没有难度的一题,前四行一个规律,后三行一个规律,利用双重for循环
代码:
from sys import stdout
for i in range(4): # 前四行
for j in range(2 - i + 1): # 第一行为例 i=0 先打印 3空格 再打印 1个 *
stdout.write(' ')
for k in range(2 * i + 1):
stdout.write('*')
print('')
for i in range(3): # 后三行
for j in range(i + 1):
stdout.write(' ')
for k in range(4 - 2 * i + 1):
stdout.write('*')
print('')
结果:
24 序列求和
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
代码:
a = 2
b = 1
s = 0
for n in range(1,21):
s += a / b
t = a
a = a + b
b = t
print (s)
结果:
25 阶乘求和
题目:求1+2!+3!+…+20!的和
代码:
# 求1+2!+3!+...+20!的和
n = 0
s = 0
t = 1
for n in range(1,21):
t *= n
s += t
print (s)
结果: