1.两数求和

1
2
3
4
num1 = int(input("请输入第一个数字:"))
num2 = int(input("请输入第二个数字:"))
sum = num1 + num2
print("两数之和为:", sum)

2.找出100以内偶数

1
2
3
4
5
list = []
for i in range(1, 101):
if i & 1 == 0: # if i is even
list.append(i)
print(list)

3.找出100以内奇数并打印

1
2
3
4
5
list = []
for i in range(1, 101):
if i & 1 == 1: # if i is odd
list.append(i)
print(list)

4.判断素数

1
2
3
4
5
6
7
8
9
10
11
12
num = int(input("Enter a number: "))
flag = True # flag variable to check if the number is prime or not, initially set to True and is prime

for i in range(2, num):
if num % i == 0:
flag = False
break

if flag:
print(num, "is a prime number")
else:
print(num, "is a composite number")

5.求阶乘

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# import math
# num = int(input("请输入一个正整数:"))
# print(f"阶乘为:{math.factorial(num)}")
num = int(input("请输入一个正整数:"))
result = 1
for i in range(1, num+1):
result *= i
print(f"{num}的阶乘为:{result}")

# 递归
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)

6.求圆的周长

1
2
3
radius = float(input("Enter the radius of the circle: "))
circumference = 2 * 3.14 * radius
print(f"The circumference of the circle is {circumference:.2f}")

7.求圆的面积

1
2
3
radius = float(input("Enter the radius of the circle: "))
area = 3.14 * radius * radius
print("The area of the circle is:", area)

8.求直角三角形斜边长

1
2
3
4
5
import math
a = int(input("Enter the first side: "))
b = int(input("Enter the second side: "))
c = math.sqrt(a**2 + b**2)
print("The length of the third side is:", c)

9.比较三个数大小

1
2
3
4
5
6
7
8
9
a = int(input("Enter the first number: "))
b = int(input("Enter the second number: "))
c = int(input("Enter the third number: "))

list = [a, b, c]
list.sort()
print("从小到大排序为:")
for i in list:
print(i)

10.找出区间内的素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def is_prime(num):
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True

num1 = int(input("Enter the lower limit: "))
num2 = int(input("Enter the upper limit: "))

list = []
for num in range(num1, num2+1):
if is_prime(num):
list.append(num)

print(f"The prime numbers in the given range are: {list}")

11.组合数字

1
2
3
4
5
6
7
8
9
# 有四个数字1 2 3 4 我们可以组成多少个不同且不重复的三位数?
num = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i!= j and i!= k and j!= k:
print(i*100+j*10+k)
num += 1
print("共有", num, "种不同且不重复的三位数")

12.打印乘法口诀表

1
2
3
4
for i in range(1, 10):
for j in range(1, i+1):
print(f"{i}*{j}={i*j}", end="\t")
print()

13.水仙花数

1
2
3
4
for i in range(100, 1000):
list = [int(j)**3 for j in str(i)]
if i == sum(list):
print(i)

14.反向输出四位数

1
2
3
a = int(input("请输入四位数:"))
b = str(a)[::-1]
print(f"{a}的反向输出为:{b}")

15.判断字母

1
2
3
4
5
6
all_letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

if input("Enter a letter: ").isalpha():
print("The letter is a valid letter.")
else:
print("The letter is not a valid letter.")

16.判断三角形

1
2
3
4
5
6
7
8
9
10
a = int(input("Enter the first side: "))
b = int(input("Enter the second side: "))
c = int(input("Enter the third side: "))

if a<=0 or b<=0 or c<=0:
print("输入数据不合法")
elif a+b>c and a+c>b and b+c>a:
print("三角形是合理的")
else:
print("三角形是不合理的")

17.完数

1
2
3
4
5
6
7
8
9
10
11
# 一个数恰好等于除了它的所有因子的和
def factorization(n):
factors = []
for i in range(1, n):
if n % i == 0:
factors.append(i)
return factors

for i in range(1, 10000):
if i == sum(factorization(i)):
print(i)

18.找质数因子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 质数只能被 1 和它自己整除
# 因此在遍历过程中,一旦找到能整除的数
# 就将其视为质数因子并继续减少 a 的值
# 直到 a 最终被完全分解为质数因子
a = int(input("Enter a number: "))
y = 2
list = []

while a != y:
if a % y == 0:
list.append(y)
a = a / y
else:
y += 1
list.append(int(a))
for i in list:
print(i,end=" ")

19.海伦公式求三角形面积

1
2
3
4
5
6
7
8
9
10
import math

a = int(input("Enter the first side: "))
b = int(input("Enter the second side: "))
c = int(input("Enter the third side: "))

p = (a + b + c) / 2
s = math.sqrt(p * (p - a) * (p - b) * (p - c))

print(f"The area of the triangle is:{s:.2f}")

20.判断某年某天

1
2
3
4
5
6
7
import datetime
year, month, day = map(int, input("请输入年月日:").split(" "))

yuandan = datetime.date(year, 1, 1)
now = datetime.date(year, month, day)

print((now - yuandan).days)

21.斐波那契数列

1
2
3
4
5
6
7
8
9
10
11
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)

n = int(input("Enter the number of terms: "))
for i in range(1, n+1):
print(fibonacci(i),end=" ")

22.复制列表

1
2
3
4
5
6
7
8
9
10
# 深拷贝
import copy

list = [1, 2, 3, 4]
list_copy = copy.copy(list)
list[0] = 5
print(list)
print(list_copy)
# [5, 2, 3, 4]
# [1, 2, 3, 4]

23.暂停后输出

1
2
3
4
import time

time.sleep(5)
print("Hello, world!")

24.成绩if语句

1
2
3
4
5
6
7
8
score = int(input("Please give me your score:"))

if score >= 90:
print("A")
elif 60 <= score <= 80:
print("B")
else:
print("C")

25.统计字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
string = input("请输入字符串:")

char = 0
number = 0
space = 0
other = 0

for i in string:
if i.isalpha():
char += 1
elif i.isdigit():
number += 1
elif i.isspace():
space += 1
else:
other += 1
print(f"字母有{char}个,数字有{number}个,空格有{space}个,其他字符有{other}个。")

26.落体反弹问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 一球从100米高度自由落下,每次落地后反跳回原高度的一半
# 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
height = 100
count = 0
list = []

while count < 10:
if count == 0:
list.append(height)
height = height / 2
count += 1
else:
list.append(2 * height)
height = height / 2
count += 1
print("共经过", sum(list), "米")
print("第10次反弹多高", height)

27.猴子吃桃问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个
# 以后每天早上都吃了前一天剩下的一半零一个
# 到第10天早上想再吃时,见只剩下一个桃子了
# 求第一天共摘了多少。

def peach(n):
if n == 10:
return 1
else:
return 2 * (peach(n+1) + 1)

for i in range(1, 11):
print(f"第{i}天摘了{peach(i)}个桃子")

28.求指定数列的和

1
2
3
4
5
6
7
8
9
10
11
12
# 2/1 + 3/2 + 5/3 + 8/5 + 13/8 + 21/13 + 34/21 + 55/34 + 89/55 + 144/89 + 233/144 + 377/233 + 610/377 + ···
sum = 0
up = 2
down = 1

for i in range(20):
sum += up / down
a = down
down = up
up += a

print(f"{sum:.2f}")

29.求各个阶乘的和

1
2
3
4
5
6
import math

sum = 0
for i in range(1, 20 + 1):
sum += math.factorial(i)
print(f"1+2!+3!+...+20!={sum}")

30.年龄急转弯

1
2
3
4
5
6
7
8
9
10
11
12
# 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁
# 问第4个人岁数,他说比第3个人大2岁
# 问第三个人,又说比第2人大两岁
# 问第2个人,说比第一个人大两岁
# 最后问第一个人,他说是10岁。请问第五个人多大?

def age_turn_around(n):
if n == 1:
return 10
else:
return age_turn_around(n-1) + 2
print(f"第五个人的年龄是{age_turn_around(5)}岁。")

31.判断回文数

1
2
3
4
5
num = int(input("请输入一个数字:"))
if str(num) == str(num)[::-1]:
print(num, "是回文数")
else:
print(num, "不是回文数")

32.判断星期几

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a = input("请输入星期几的英文").lower()
if a[0] == "m":
print("星期一")
elif a[0] == "t":
if a[1] == "u":
print("星期二")
else:
print("星期四")
elif a[0] == "w":
print("星期三")
elif a[0] == "f":
print("星期五")
elif a[0] == "s":
if a[1] == "a":
print("星期六")
else:
print("星期日")
else:
print("请输入正确的英文日期")

33.相反顺序输出列表

1
2
3
4
5
6
list = [1, 2, 3, 4, 5]
# using reversed() func
list.reverse()
print(list)
# using slicing
print(list[::-1])

34.对十个数进行排序

1
2
3
4
5
6
7
8
9
10
import random

list = []
for i in range(10):
list.append(random.randint(1, 100))
print("Original list:", list)
list.sort()
print("Sorted list:", list)
# Original list: [52, 31, 61, 4, 19, 45, 85, 75, 11, 50]
# Sorted list: [4, 11, 19, 31, 45, 50, 52, 61, 75, 85]

35.求矩阵主对角线元素之和

1
2
3
4
5
6
7
8
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
sum = 0

for i in range(len(matrix)):
sum = sum + matrix[i][i]

print(matrix)
print(f"The sum of the main diagonal elements of the matrix is: {sum}")

36.有序列表插入元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import random
list = [random.randint(1, 100) for j in range(1, 11)]
list.sort()
print("Original list:", list)

num = int(input("请给一个数字进行插入:"))
count = 0
for i in range(len(list)):
if num <= list[i]:
list.insert(i, num)
break
else:
count += 1
print("After insertion:", list)

37.变量值交换

1
2
3
4
5
6
7
8
9
10
11
12
a = int(input("Enter the value of a: "))
b = int(input("Enter the value of b: "))

print("Before swapping: a =", a, "b =", b)

a, b = b, a

print("After swapping: a =", a, "b =", b)
# Enter the value of a: 11
# Enter the value of b: 22
# Before swapping: a = 11 b = 22
# After swapping: a = 22 b = 11

38.产生随机数

1
2
3
4
5
6
7
import random

a = random.random()
b = random.randint(1, 100)
c = random.randrange(1, 101, 2)

print(a,b,c)

39.lambda表达式

1
2
a = lambda x,y: x*y
print(a(2,3))

40.温度转换

1
2
3
4
5
6
7
8
9
10
temperature = input("请输入温度(单位是C或者F):").upper()
temperature_number = float(temperature[:-1])
if temperature[-1] == "C":
fahrenheit = (temperature_number * 9/5) + 32
print(f"此温度转换为华氏度是{fahrenheit}F")
elif temperature[-1] == "F":
centigrade = (temperature_number - 32) * 5/9
print(f"此温度转换为摄氏度是{centigrade}C")
else:
print("请输入正确的温度单位")

41.按位与

1
2
3
# 运算规则 0&0=0 0&1=0 1&0=0 1&1=1
print(5 & 3) # 0101 & 0011 = 0001(1)
print(4 & 12) # 0100 & 1100 = 0100(4)

42.按位或

1
2
3
# 运算规则 0|0=0 0|1=1 1|0=1 1|1=1
print(3 | 7) # 0011 | 0111 = 0111(7)
print(10 | 5) # 1010 | 0101 = 1111(15)

43.按位异或

1
2
3
# 运算规则 0^0=0, 0^1=1, 1^0=1, 1^1=0
print(3 ^ 9) # 0011 ^ 1001 = 1010(10)
print(4 ^ 8) # 0100 ^ 1000 = 1100(12)

44.按位取反

1
2
3
# 运算规则 ~x = -x - 1
print(~9) # 00001001 -> 11110110
print(~-3) # 11110111 -> 00001000

45.计算字符串长度

1
2
3
4
5
6
a = input("请输入字符串:")
# print("字符串长度为:", len(a))
length = 0
for i in a:
length += 1
print("字符串长度为:", length)

46.杨辉三角

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def generate_pascals_triangle(n):
triangle = []

for i in range(n):
row = [1] * (i + 1) # 创建一行,先将所有元素都设置为1
for j in range(1, i): # 从第二个元素开始到倒数第二个元素
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j] # 上方两个元素相加
triangle.append(row)

return triangle

n = 10
triangle = generate_pascals_triangle(n)
for row in triangle:
print(row)

47.查找字符串

1
2
3
a = "hello world"
b = "world"
print(a.find(b)) # 没有找到就返回-1

48. 猜数字游戏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import random
def guess_number(num, traget):
if target == num:
print("Congratulations! You guessed the number!")
elif num < target:
print("The number is smaller than the target.")
guess_number(int(input("Please enter a larger number: ")), target)
else:
print("The number is larger than the target.")
guess_number(int(input("Please enter a smaller number: ")), target)

target = random.randint(1, 100)
print("I'm thinking of a number between 1 and 100. Can you guess it?")
guess_number(int(input("Enter your guess: ")), target)

49.第一个只出现一次的字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
str = "Hello WorldHello World"

mp = dict()
count = None

for i in str:
if i in mp:
mp[i] += 1
else:
mp[i] = 1

for i in range(len(str)):
if mp[str[i]] == 1:
count = i
break
if count is None:
print("There is no character that appears only once.")
else:
print("The first character that appears only once is:", str[i])

50.最大公因数

1
2
3
4
5
6
import math

a = int(input("Enter the first number: "))
b = int(input("Enter the second number: "))

print(f"The greatest common divisor of {a} and {b} is:", math.gcd(a, b))

51.数组中没有出现的数字

1
2
3
4
5
6
7
8
import random
upper_limit = int(input("Enter the range of the array: "))
number = int(input("Enter the number of elements in the array: "))
nums = [random.randint(1, upper_limit) for i in range(number)]
nums.sort()
comparasion = [j for j in range(1, upper_limit+1) if j not in nums]
print("The array is:", nums)
print("The number that is not in the array is:", comparasion)

52.替换空格

1
2
3
# str.replace(old, new[, count])
str = input("请输入字符串:")
print(str.replace(" ", "%"))

53.快乐数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def change(n):
sum = 0
while n > 0:
j = x = n % 10
sum += j ** 2
n //= 10
return sum

def happynumber(n):
while n > 9:
n = change(n)
if n == 1:
return True
else:
return False

n = int(input("Enter a number: "))
if happynumber(n):
print(n, "is a happy number")
else:
print(n, "is not a happy number")

54.立方根

1
2
3
4
5
import math

num = float(input("Enter a number: "))
root = math.floor(math.pow(num, 1/3))
print(f"The cube root of {num} is {root}")

55.最长公共前缀

1
2
3
4
5
6
7
8
9
10
11
12
13
def longest_common_prefix(strs):
n = len(strs)
if n == 0:
return ""
for i in range(len(strs[0])):
temp = strs[0][i]
for j in range(1, n):
if i >= len(strs[j]) or strs[j][i]!= temp:
return strs[0][:i]
return strs[0]

strs = ["flower","flow","flight"]
print(longest_common_prefix(strs))

56.字符串变形

1
2
3
4
5
6
7
8
9
10
# 将字符串由空格隔开的单词反序,同时反转每个字符的大小写
def func(s):
words = s.split()
words.reverse()
s = ""
for word in words:
s += word.swapcase() + " "
return s[0:-1]

print(func("Hello World"))

57.压缩字符串

1
2
3
4
5
6
7
8
9
10
11
def func(s):
list = []
for i in s:
if not list or list[-2] != i: # list 为空或者最后的字母元素和当前元素不同
list.append(i)
list.append(1)
else: # 相同次数加一
list[-1] += 1
return ''.join(map(str, [x for x in list if x!= 1]))

print(func('aaaabbbcc'))

58.三个数的最大乘积

1
2
3
4
5
6
7
8
9
import random

number = int(input("给定数组的长度:"))
list = [random.randint(-100, 100) for i in range(number)]
list.sort()
print("数组为:", list)

max_product = max(list[0] * list[1] * list[-1], list[-1] * list[-2] * list[-3])
print("最大乘积为:", max_product)

59.十进制转二进制

1
2
3
a = int(input("请输入一个十进制数:"))
b = bin(a)
print("十进制数", a, "的二进制数为", b[2:])

60.判断字符串是否唯一

1
2
3
4
5
6
str = input("请输入字符串:")
# len() 转换为集合,集合的元素唯一
if len(set(str)) == len(str):
print("字符串中没有重复的字符")
else:
print("字符串中有重复的字符")

61.IP地址转换

1
2
3
4
5
6
7
8
9
def ip_to_int(ip):
ip_list = ip.split('.')
ip_int = 0
for i in range(4):
ip_int = ip_int * 256 + int(ip_list[i])
return ip_int

ip = '192.168.1.1'
print(ip_to_int(ip))

62.二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import random  

def generate_list(number):
l = list(set([random.randint(1, 100) for i in range(number)]))
l.sort()
return l

def binary_search(list, target):
left = 0
right = len(list) - 1
while left <= right:
mid = (left + right) // 2
if list[mid] == target:
return mid
elif list[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1

n = 10
l = generate_list(n)
print(l)
tar = int(input("Enter a number to search: "))
result = binary_search(l, tar)
if result == -1:
print("Not found")
else:
print("Found at index", result)

63.二分查找(有重复版)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
temp = mid
while temp > 0 and arr[temp-1] == target:
temp -= 1
return temp
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1

arr = [1, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9]
target1 = 1
target2 = 3
print(binary_search(arr, target1)) # 0
print(binary_search(arr, target2)) # 3

64.移动0

1
2
3
4
5
6
7
8
9
10
11
# 给定一个数组,将所有0移动到数组的末尾,并保持非0元素的相对顺序不变。

def move_zeros(arr):
for i in range(len(arr)):
if arr[i] == 0:
arr.append(0)
arr.pop(i)
return arr

arr = [1, 0, 2, 0, 3, 0, 4, 5, 0]
print(move_zeros(arr))

65.字符串翻转

1
2
3
4
5
6
7
8
9
10
def reverse_string(a, b):
if len(a)!= len(b):
return False
else:
bigA = a + a
result = b in bigA
return result

print(reverse_string("hello", "ohell")) # True
print(reverse_string("hello", "olle")) # False

66.判断子序列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def is_subsequence(s, t):
c = ""
n = 0
if len(s) > len(t):
return False
for i in s:
if i == t[n]:
c += i
n += 1
if c == s:
return True
else:
return False
print(is_subsequence("hlo", "hello"))

67.数组中重复的数字

1
2
3
4
5
6
7
8
def find_repeat_num(nums):
for i in nums:
if nums.count(i) >= 2:
return i
return -1

print(find_repeat_num([1, 2, 4, 5, 4, 3, 2])) # 2
print(find_repeat_num([1, 2, 3, 4, 5])) # -1

68.字符串的相邻字符去重

1
2
3
4
5
6
7
8
9
10
11
12
def remove_adjacent_duplicates(s):
res = ""
for i in s:
if res =="":
res += i
elif res[-1] == i:
res = res[:-1]
else:
res += i
return res

print(remove_adjacent_duplicates("acbbc")) # "a"

69.2的幂

1
2
3
4
5
def find_pow(n):
# 2的幂按位与比它小1的数为0
return n > 0 and n & (n-1) == 0

print(find_pow(1024))

70.最长公共子串

1
2
3
4
5
6
7
8
9
10
11
def lcs(s1: str, s2: str) -> str:
res = ''
left = 0
for i in range(len(s1)+1):
if s1[left:i+1] in s2:
res = s1[left:i+1]
else:
left += 1
return res

print(lcs('hello world', 'helo wordl')) # lo wor

71.冒泡排序

1
2
3
4
5
6
7
8
9
10
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1): # -i 是后面i个已经是最大的, -1是下面是比较i和i+1
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr

arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

72.选择排序

1
2
3
4
5
6
7
8
9
10
11
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr

arr = [5, 2, 7, 1, 9, 3, 8, 4, 6]
print(selection_sort(arr))

73.插入排序

1
2
3
4
5
6
7
8
9
10
11
12
def insert_sort(arr):
for i in range(1, len(arr)):
key = arr[i] # 待插入的元素
j = i - 1 # 待比较的元素
while j >= 0 and key < arr[j]: # 从后向前比较,找到比待插入元素小的元素,插入到该位置
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr

arr = [4, 2, 5, 1, 3]
print(insert_sort(arr))

74.字符删除

1
2
3
4
5
6
7
# 给定两个字符串str和sub,从str中完全删除sub中存在的字符

def delete_chars(str, sub):
sub = set(sub)
return ''.join(c for c in str if c not in sub)

print(delete_chars('hello world', 'lwr')) # heo word

75.目标转移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def move_target(nums, target):
count = 0
left = len(nums) - 1
right = len(nums) - 1
while left >= 0:
if nums[left] != target:
nums[right] = nums[left]
right -= 1
else:
count += 1
left -= 1
for i in range(count):
nums[i] = target
return nums
print(move_target([1,2,1,4,1,6,7,8,1,10], 1))

76.柠檬水找ling

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 每杯柠檬水5元,顾客只有5,10,20元面额的钞票,问能不能找零

my_money = {5: 0, 10: 0, 20: 0} # 使用字典来存储不同面额的钞票数量
flag = True

while flag:
print("当前钞票:", my_money)
give_money = int(input("顾客付款金额(5 10 20):"))

if give_money not in [5, 10, 20]:
print("无效的金额")
continue

# 检查是否能找零
if give_money == 5:
my_money[5] += 1
print("找您0元")
elif give_money == 10:
if my_money[5] > 0:
my_money[5] -= 1
my_money[10] += 1
print("找您5元")
else:
print("不能找零")
flag = False
elif give_money == 20:
if my_money[10] > 0 and my_money[5] > 0:
my_money[10] -= 1
my_money[5] -= 1
my_money[20] += 1
print("找您15元")
elif my_money[5] >= 3:
my_money[5] -= 3
my_money[20] += 1
print("找您15元")
else:
print("不能找零")
flag = False

# 输出最终的钞票信息
print("最终钞票情况:", my_money)

77.末尾的零

给定n,求n!末尾的0的个数
1
2
3
4
5
6
7
8
9
10

def count_zero(n):
count = 0
while n!= 0:
count += n // 5
n //= 5
return count

n = int(input("请输入一个整数:"))
print("末尾的0的个数为:", count_zero(n))

78.统计数字

1
2
3
4
5
6
7
8
9
# func(1, 11) 1 10 11 一共4次
def func(k, n):
count = 0
for i in range(1, n+1):
time = str(i).count(str(k))
count += time
return count

print(func(1, 11))

79.合并排序数字

1
2
3
4
5
6
7
8
9
10
11
12
13
def sortArray(nums1, nums2):
nums = []
while nums1 and nums2:
if nums1[0] < nums2[0]:
nums.append(nums1.pop(0))
else:
nums.append(nums2.pop(0))
nums += nums1 + nums2
return nums

nums1 = [1, 3, 5, 7]
nums2 = [2, 4, 6, 8]
print(sortArray(nums1, nums2))

80.插入5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def insert_five(num):
num_str = str(num)
max_num = num_str

if num < 0:
for i in range(1, len(num_str) + 1):
new_num = num_str[:i] + '5' + num_str[i:]
if i ==1:
max_num = new_num
elif int(new_num) > int(max_num):
max_num = new_num
else:
for i in range(len(num_str) + 1):
new_num = num_str[:i] + '5' + num_str[i:]
if new_num > max_num:
max_num = new_num

return max_num

given_num = int(input("Enter a number: "))
print(insert_five(given_num))

81.字符串置换

1
2
3
4
def string_permutation(str1, str2):
return sorted(str1) == sorted(str2)

print(string_permutation("abc", "bca"))