Demo01 不死兔子问题
def fibonacci(n):
if n == 0:
return 0
elif n == 1 or n == 2 or n == 3 or n == 4:
return 1
else:
return fibonacci(n-1) + fibonacci(n-4)
nums = int(input("请输入第几个月:"))
print(f"第{nums}个月有{fibonacci(nums)}只兔子")
Demo02 输入字符串,判断该字符串是否是回文字符串
def is_palindrome(string):
return string == string[::-1]
input_string = input("请输入一个字符串:")
if is_palindrome(input_string):
print("是回文字符串")
else:
print("不是回文字符串")
Demo03 给定一个正整数N,找出1到N(含)之间所有质数的总和
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def sum_of_primes(n):
prime_sum = 0
for num in range(2, n+1):
if is_prime(num):
prime_sum += num
return prime_sum
N = int(input("请输入一个正整数N:"))
total_sum = sum_of_primes(N)
print("1到{}之间所有质数的总和为:{}".format(N, total_sum))
Demo04 求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
def calculate_expression(a, n):
result = 0
num = a
for i in range(1, n+1):
result += num
num = num * 10 + a
return result
a = int(input("请输入a的值(1至9之间的整数):"))
n = int(input("请输入项数n的值:"))
expression_result = calculate_expression(a, n)
print("表达式的结果为:", expression_result)
Demo05 合并两个有序数组,合并后还是有序列表
def merge_sorted_arrays(arr1, arr2):
merged = []
i = j = 0
while i < len(arr1) and j < len(arr2):
if arr1[i] <= arr2[j]:
merged.append(arr1[i])
i += 1
else:
merged.append(arr2[j])
j += 1
merged.extend(arr1[i:])
merged.extend(arr2[j:])
return merged
array1 = [1, 3, 5, 7]
array2 = [2, 4, 6, 8]
merged_array = merge_sorted_arrays(array1, array2)
print("合并后的有序数组:", merged_array)
Demo06 给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def sort_array(nums):
left = 0
right = len(nums) - 1
while left < right:
if nums[left] % 2 == 0:
if nums[right] % 2 != 0:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1
else:
left += 1
return nums
array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print("原始数组:", array)
sorted_array = sort_array(array)
print("将偶数放在奇数元素之前的数组:", sorted_array)
Demo07 给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中缺失一个,请找出这个缺失的元素
def find_missing_element(nums):
n = len(nums)
total_sum = (n+1)*(n+2) // 2
actual_sum = sum(nums)
missing_element = total_sum - actual_sum
return missing_element
array = [1, 2, 4, 5, 6]
missing_number = find_missing_element(array)
print("原始数组:", array)
print("缺失的元素是:", missing_number)
Demo08 小明有一堆苹果,他每天吃掉这堆的一半加一个,等第六天,小明剩余1个苹果,问,这堆苹果共多少个?
def calculate_apple_count():
remaining_apples = 1
for i in range(6, 0, -1):
remaining_apples = (remaining_apples + 1) * 2
return remaining_apples
total_apples = calculate_apple_count()
print("这堆苹果共有{}个".format(total_apples))