python作业

1.字符串回文

#字符串回文
str = input("输入一个字符串:")
def huiwen(ste):
    hui = True
    wen = str[::-1]
    for i in range(len(wen)):
        if wen[i] != str[i]:
            print("不是回文数!")
            hui = False
            break
    if hui is True:
        print("是回文数!")
huiwen(str)

回文:输入一组字符串,从左往右数或是从右往左数都是一样的

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

#给定一个正整数N,找出1到N(含)之间所有质数的总和
def 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(n):
    prime_sum = 0
    for num in range(2, n + 1):
        if prime(num):
            prime_sum += num
    return prime_sum

N = int(input("请输入一个正整数N:"))
total_sum  = sum(N)
print(f"1到{N}之间所有质数的总和为:{total_sum}")

3.不死兔子

有一只兔子,四个月成熟后,每个月生一只小兔子,小兔子也是过四个月成熟,每个月生一只小兔子,问几个月后,会拥有多少个小兔子

#不死兔子
month = int(input("请输入月份:"))

def rubbit(month):
    if month <= 4:
        return 1
    else:
        return rubbit(month - 4) + rubbit(month - 1)
    
print(rubbit(month))

4.求a相关之和

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


def num(a, n):
    term = str(a)
    total = a
    for i in range(2, n + 1):
        term += str(a)
        total += int(term)
    return total

a = int(input("输入数值:"))
n = int(input("输入项数"))
result = num(a, n)
print(f"{a}+{a}{a}+{a}{a}{a}的和为:{result}")

5.合并两个有序数组,并且合并后的数组仍为有序数组

def bubble_sort(arr):
    n = len(arr)
    for i in range(n - 1):
        for j in range(n - 1 - i):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
 
def merge(arr1, arr2):
    merged = arr1 + arr2  
    bubble_sort(merged)  
    return merged
 
array1 = [1, 3, 5, 7, 9]
array2 = [2, 4, 6, 8, 10]
print("合并的数组是",array1,array2)
mergedarray = merge(array1, array2)
print("合并并排序后的数组:", mergedarray)

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

#给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def sort(arr):
    left = 0
    right = len(arr) - 1

    while left < right:
        #找到第一个奇数元素
        while arr[left] % 2 == 0 and left < right:
            left += 1
        
        #找到第一个偶数元素
        while arr[right] % 2 != 0 and left < right:
            right -=1

        #交换奇数元素和偶数元素的位置
        if left < right:
            arr[left] ,arr[right] = arr[right], arr[left]
            left += 1
            right -= 1

    return arr

arr_num = [3, 6, 2, 7 ,8, 9, 34 ,54, 32]
print("没有排列之前的数组:",arr_num)
after_arr = sort(arr_num)
print("将偶数放在奇数元素之前的数组:", after_arr)

7.寻找缺失元素

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

#给定一个非负整数数组A,该数组的元素都是从1~N的元素组成, 现在发现其中缺失一个,请找出这个缺失的元素
list = [1, 3, 4, 5, 6, 7, 8, 9, 10, 11]

def get_losenum(list):
    for i in range(0, len(list) - 1):
        if list[i] + 1 != list[i + 1]:
            return list[i] + 1
        
print("缺失元素为:",get_losenum(list))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值