一:有一堆硬币,每次只能拿一个或者两个,求
最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
num = 0
s = [10, 8, 5, 3, 27, 99]
for i in s:
a = i % 2
if a == 0:
num = i // 2 + num
else:
num = i // 2 + num + 1
print("需要取%s次"%(num))
运行结果:
二:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
l = []
for num in range(2, 101):
flag = True
for i in range(2, num):
if num % i == 0:
flag = False
break
if flag:
l.append(num)
else:
pass
print("1~100以内的素数有:")
print(l)
i = 1
while i < len(l):
if l[i] - l[i - 1] == 2:
print("{}和{}是孪生数".format(l[i], l[i - 1]), end=" ")
if i == 6 or i == 10:
print(" ")
i += 1
三:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
ls = [1,2,3,4,5,6,7,8,9]
num_min = ls[0]
num_sum = 0
for i in range (1,len(ls)):
if num_min > ls[i]:
num_min = ls[i]
else:
pass
print ("最小值:",num_min)
for i in ls:
num_sum += i
print ("和:",num_sum)
num_aver = num_sum / len(ls)
print ("平均数:",num_aver)
运行结果:
四:将list中的重复数据去重,至少使用两种方案
方法一:
ls=[1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9]
for i in ls:
li = list(set(ls))
print(f'去重后的list为:{li}')
方法二:
lx = [1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9]
li = []
for i in lx:
if i not in li:
li.append(i)
print('列表lx去重后的元素为:', li)
运行结果:
五:两个列表进行合并操作
lx = [1,3,5,7,9]
ly = [2,4,6,8,10]
print('合并后的列表为%s'%(lx+ly))
运行结果:
六:使用列表判断一个列表是否在另外一个列表中
lx = [1,2,3,4,5,6,7,8]
ly = [111,22,33,54,55,66,77,9]
for i in lx:
if i not in ly:
print("两个列表没有重合")
break
else:
print("两个列表有重合")
break
运行结果:
七:列表的反转 列表的排序
lx = [1,3,4,6,5,7,8]
for i in lx:
llx = list(reversed(lx))
print('反转后的列表为:%s'%llx)
llx.sort()
print('排序后的列表为:%s'%llx)
运行结果:
八:如何将0-10随机存入列表中
import random
lx = []
for i in range(10):
lx.append(random.randint(0, 10))
print('添加后的元素为:%s' % lx)
运行结果:
九:存在一个1~n的连续列表,在其中不小心重复了一个值,请找出这个重复值
[1,2,3,4,5]
res = 0
arr = [1,4,2,3,4,5]
for i in range (0,len(arr)):
res ^= i ^ arr[i]
print(res)
运行结果:、