青蛙跳楼梯(斐波那契数列)
当n为1时,只有一种跳法;
当n为2时,有两种跳法;
当n大于2时,青蛙可以选择先跳一级,
然后解决剩下的n-1级楼梯,
或者先跳两级,
然后解决剩下的n-2级楼梯这样不断递归下去,
直到n为1或2时,得到跳法的总数。
def frog_jump(n):
if n ==1:
return 1
elif n == 2:
return 2
else:
return frog_jump(n-1) + frog_jump(n-2)
num_of_ways = frog_jump(5)
print(num_of_ways)
不死兔子
def get_rabbit(n : int) -> int:
if n <= 4 :
return 1
return get_rabbit(n - 1) + get_rabbit(n - 4)
print(get_rabbit(12))
输入字符串,判断该字符串是否是回文字符串
num = int (input("输入:"))
temp =num
change_num =0
while num >0:
change_num *= 10
change_num += num%10
num //= 10
if temp == change_num:
print("yes")
else:
print("no")
给定一个正整数N,找出1到N(含)之间所有质数的总和
def prime_num(n : int):
# 判断是否是质数
for i in range(2, n // 2 + 1):
if n % i == 0:
return False
return True
n = int(input('请输入正整数N:'))
num = 0
for i in range(2, n):
if prime_num(i):
num += i
print(f'质数的总和:{num}')
求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
num , group = map(int ,input("输入数字和组数:").split())
def get_num(num,group):
sum = 0
for i in range(1,group+1):
sum += int(str(num)*i)
return sum
print(get_num(num,group))
合并两个有序数组,合并后还是有序列表
#方法一
list1 = [1, 3, 5]
list2 = [2, 4, 6]
list3 = sorted(list1 + list2)
print(list3)
#方法二
def lists(list1, list2):
merged_list = []
while list1 and list2:
if list1[0] < list2[0]:
merged_list.append(list1[0])
list1.pop(0)
else:
merged_list.append(list2[0])
list2.pop(0)
merged_list += list1 + list2
return merged_list
list1 = [1, 3, 5]
list2 = [2, 4, 6]
merged_list = lists(list1, list2)
print(merged_list)
给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
list_A = [ 1, 2, 3, 4]
for i in list_A:
if int(i) % 2 == 0:
j = i
list_A.remove(i)
list_A.insert(0,j)
print(list_A)
给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中缺失一个,请找出这个缺失的元素
list_A = [ 1, 2, 3, 4 ,6]
for i in range(0,len(list_A)):
if list_A[i] + 1 != list_A[i + 1]:
print(list_A[i]+1)
小明有一堆苹果,他每天吃掉这堆的一半加一个,等第六天,小明剩余1个苹果,问,这堆苹果共多少个?
i = 1
num = 1
while i < 6 :
num = (num + 1) * 2
i += 1
print(num)