拿硬币
python
复制代码
# 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
# [10, 8, 5, 3, 27, 99]
孪生数
python
复制代码
# 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
import math
# 定义一个空的数组,用于存放质数
prime=[]
# 找出质数并将质数放入数组中
for i in range(2,101):
flag = True
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
flag = False
break
if flag:
prime.append(i)
# 对数组进行遍历,找到孪生数
for index in range(0,len(prime)-1):
if prime[index]+2==prime[index+1]:
print(f"{prime[index]} {prime[index+1]}||",end="")
求最值
python
复制代码
# 给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
# 定义一个列表
ran_num = [56,45,90,89,132,78,52,34,45,2,145,65,76]
# 对数组进行遍历求最值
max = ran_num[0]
min = max
num_sum = 0
num_avg = 0
for i in ran_num:
# 求最大值
if max < i:
max = i
#求最小值
if min > i:
min = i
# 求和
num_sum += i
# 求平均值
num_avg = num_sum/len(ran_num)
print(max,min,num_sum,int(num_avg))
数据去重
python
复制代码
# 将list中的重复数据去重,至少使用两种方案
# 定义一个带重复元素的list
list_num = [2,2,3,4,2,4,0,4,5,6,7,8,96]
# 方法一:利用哈希表的无序不重复
set_num = set(list_num)
list_num = list(set_num)
print(list_num)
#方法二:对list中元素与下一位元素比较,找到重复元素后,将该元素移除list
i = 0
while i <len(list_num)-2:
j=i+1
while j<len(list_num)-1:
if list_num[j] == list_num[i]:
list_num.pop(j)
j-=1
j+=1
i+=1
print(list_num)
列表合并
python
复制代码
# 两个列表进行合并操作
# 定义两个列表
list_1 = [5,5,4,3,2,4,75,87,5,9,0,2,9,]
list_2 = [3,2,1,53,534,23,4,5,6,3,4,22,4]
# 将两个表合并
# 方法一:用extend函数
list_1.extend(list_2)
print(list_1)
# 方法二:对list_2遍历,并添加到list_1的尾部
for i in list_2:
list_1.append(i)
print(list_1)