Python第六次作业

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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值