1.不死兔子
def fib(n):
if n <= 4:
return 1
else:
return fib(n-1) + fib(n-2)
print("一年后共繁殖{}对兔子".format(fib(12)))
2.输入字符串,判断该字符串是否是回文字符串
s = input("请输入一个字符串:")
if not s:
print("请不要输入空字符串!")
s = input("请重新输入一个字符串:")
a = reversed(list(s))
if list(a) == list(s):
print("该字符串是回文")
else:
print("该字符串不是回文")
3.给定一个正整数N,找出1到N(含)之间所有质数的总和
def zhishu(n):
#判断是否是质数
for i in range(2, n // 2 + 1):
if n % i == 0:
return False
return True
n = int(input("输入你想要的正整数:"))
num = 0
for i in range(2, n):
if zhishu(i):
num += i
print(f"质数的总和:{num}")
4.求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
a = int(input("请输入所相加的数字:"))
b = int(input("请输入相加的次数:"))
temp = ""
res = 0
for i in range(b):
temp = temp + "1"
res = res + a * int(temp)
print(res)
5.合并两个有序数组,合并后还是有序列表
a = [1,2,3,8,9,10]
b = [2,6,8,14,50,60]
def merge2(a, b):
la,lb = len(a), len(b)
c = []
i = j = 0
while i <la and j < lb:
if a[i] < b[i]:
c.append(a[i])
i += 1
else:
c.append(b[j])
j += 1
if i < la:
c.extend(a[i:])
if j < lb:
c.extend(b[j:])
return c
print(merge2(a, b))
结果:
6.给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
#给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def even_before_odd(ls=[]):
'''
将一个非负整数数组中的所有偶数都放在奇数元素之前
'''
for i in range(len(ls)):
if ls[i] % 2 != 0:
for j in range(i + 1, len(ls)):
if ls[j] % 2 == 0:
ls[i], ls[j] = ls[j], ls[i]
break
return ls
ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(f'原列表为:{ls}')
print(f'将偶数置于奇数前,列表变为:{even_before_odd(ls)}')
7.给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中确实一个,请找出这个确实的元素
[1,3,1,2,2,8,8]
def notpair(ls):
'''
找出不成对的元素
'''
temp = 0
for i in ls:
temp ^= i
return temp
ls = [1, 4, 1, 3, 3, 8, 9, 8, 9]
print(f'{ls}中不成对的元素为:{notpair(ls)}')
结果: