定义一个函数实现数据类型的转换
第一个元素是数据标识,第二个元素的数值必须大于等于50才返回,不够50往后累加,加到最后如果不够50也直接返回,因为没有可加的数据了
例子1:
a = [[1,3],[2,51],[3,49],[4,42],[5,42]] #入参
a1 = [[2,54],[4,91],[5,42]] #返回
例子2:
b = [[1,50],[2,5],[3,10],[4,42],[5,42],[6,10]] #入参
b1 = [[1,50],[4,57],[6,52]] #返回
a = [[1, 3], [2, 51], [3, 49], [4, 42], [5, 42]]
li = []
n =0
for i, kin a:
n += k
if n >=50:
li.append([i, n])
n =0
elif len(a) == i:
li.append([i, k])
print(li)
一个球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
def fun(n):
if n ==1:
return 100 /2
else:
res = fun(n -1) /2
return res
print(fun(10))
def func(n):
if n ==1:
return 100
else:
return (fun(n -1) *2) + func(n -1)
print(func(10))
# for 循环实现
def height_100():
# 定义S用来计算总距离
s =0
h =100
for iin range(10):
# 加上本次落地的距离
s += h
h = h /2
# 加上反弹的距离
s += h
print(f'第10次落地的总距离为:{s-h}')
print(f'第10次反弹的高度:{h}')
height_100()
斐波拉契数列
[1,1,2,3,5,8,13,21,34,55]
分析:
月份 数量
1 2只
2 2只
3 4只
4 6只
5 10只
6 16只
def tu_func(n):
if n ==1 or n ==2:
return 2
else:
return tu_func(n -1) + tu_func(n -2)
print(tu_func(10))
# for 循环实现
def tu_func1(n):
s = []
for iin range(1, n +1):
if i ==1 or i ==2:
s.append(2)
else:
s.append(s[i -2] + s[i -3])
return s
print(tu_func1(10))
小明有100元钱 打算买100本书,A类书籍5元一本,B类书籍3元一本,C类书籍1元两本,
请用程序算出小明一共有多少种买法?
def func3():
count =0
for ain range(21):
for bin range(34):
c =100 - a - b
if a *5 + b *3 + c *0.5 ==100:
count +=1
print(a, b, c)
print(F'一共有{count}种买法')
func3()