python第11天作业

1.不死兔子

代码

def demo(num):

 if num == 1 or num == 2:

  return 1

 return demo(num-1) +demo(num -2)

#打印第20个月的兔子数量

print(demo(20))

2.    输入字符串,判断该字符串是否是回文字符串

def is_palindrome(s):

    s = ''.join(ch.lower() for ch in s if ch.isalnum())

    # 比较字符串与其逆序字符串是否相等

    return s == s[::-1]

string = input("请输入一个字符串:")

if is_palindrome(string):

    print("是回文字符串")

else:

    print("不是回文字符串")

3.给定一个正整数N,找出1到N(含)之间所有质数的总和

def is_prime(number):

    if number < 2:

        return False

    for i in range(2, int(number**0.5) + 1):

        if number % i == 0:

            return False

    return True

def sum_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_primes(N)

print(f"1到{N}之间所有质数的总和为:{total_sum}")

4.求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定

def calculate_sum(a, n):

    # 将 a 转换成字符串形式

    a_str = str(a)

   

    total_sum = 0

    current_term = a  

    for i in range(1, n+1):

        total_sum += current_term

        current_term = int(a_str * i)  

    return total_sum

a = int(input("请输入 a 的值(1-9之间的整数):"))

n = int(input("请输入项数:"))

result = calculate_sum(a, n)

print(f"a+aa+aaa+...+aaaaaaaaa 的值为:{result}")

5.合并两个有序数组,合并后还是有序列表

def merge_sorted_arrays(nums1, nums2):

    merged = [0] * (len(nums1) + len(nums2))

   

    i = j = k = 0

    while i < len(nums1) and j < len(nums2):

        if nums1[i] <= nums2[j]:

            merged[k] = nums1[i]

            i += 1

        else:

            merged[k] = nums2[j]

            j += 1

        k += 1

   

    while i < len(nums1):

        merged[k] = nums1[i]

        i += 1

        k += 1

    while j < len(nums2):

        merged[k] = nums2[j]

        j += 1

        k += 1

   

    return merged

nums1 = [1, 3, 5]

nums2 = [2, 4, 6]

merged = merge_sorted_arrays(nums1, nums2)

print("合并后的有序数组:", merged)

6.给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

def sort_even_odd(nums):

    left = 0

    right = len(nums) - 1

    while left < right:

        if nums[left] % 2 == 0 and nums[right] % 2 != 0:

            nums[left], nums[right] = nums[right], nums[left]

        if nums[left] % 2 != 0:

            left += 1

        if nums[right] % 2 == 0:

            right -= 1

   

    return nums

nums = [3, 1, 2, 4, 5, 6, 7, 8, 9]

result = sort_even_odd(nums)

print("重新排序后的数组:", result)

7.    给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中确实一个,请找出这个确实的元素

def find_missing_element(nums):

    n = len(nums)

    expected_sum = (n + 1) * (n + 2) // 2

   

    actual_sum = sum(nums)

   

    missing_element = expected_sum - actual_sum

   

    return missing_element

nums = [1, 2, 3, 4, 6, 7, 8, 9, 10]

result = find_missing_element(nums)

print("确实的元素是:", result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值