第六次作业

文章介绍了Python中的几个基础算法,包括递归兔子数量计算、判断回文字符串、查找质数和、累加特定模式数列、合并并排序数组以及调整数组顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.不死兔子

def rabbit_king(month) :
    if month == 1 or month == 2 :
        return 1
    else :
        return rabbit_king(month - 1) + rabbit_king(month - 2)
    
month = int(input())
print("第" , month , "个月的兔子数量为:" , rabbit_king(month))

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

def judge_num(string1) :
    string2 = string1[::-1]
    for i in string1 :
        for j in string2 :
            if i == j :
                return True
            else :
                return False

string1 = str(input())
print(judge_num(string1))

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

def sum_prime(num) :
    count = 0
    for i in range(2 , num) :
        for j in range(2 , i) :
            if i % j == 0:
                break
            else :
                count += i
    return count

num = int(input())
print("1到" , num , "的质数的和是:" , sum_prime(num))

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

def calculate_sum(a ,n) :
    b = 0
    num = 0
    for i in range(n) :
        b = 10 * b + a
        num += b
    return num

a = int(input("输入a的值:")) 
n = int(input("输入项数n:")) 
print("和是" + str(calculate_sum(a,n)))

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

l1 = list(input("请输入第一个数组:").split())
l2 = list(input("请输入第二个数组:").split())

def merge_sequence(l1 : list , l2 : list) :
    for i in range(len(l1) - 1) :
        for j in range(len(l1) - 1 - i) :
            if l1[j] > l1[j + 1] :
                l1[j] , l1[j + 1] = l1[j + 1] , l1[j]

    for i in range(len(l2) - 1) :
        for j in range(len(l2) - 1 - i) :
            if l2[j] > l2[j + 1] :
                l2[j] , l2[j + 1] = l2[j + 1] , l2[j]
                
    l3 = l1 + l2
    for i in range(len(l1) - 1) :
        for j in range(len(l1) - 1 - i) :
            if l1[j] > l1[j + 1] :
                l1[j] , l1[j + 1] = l1[j + 1] , l1[j]

    for i in range(len(l3) - 1) :
        for j in range(len(l3) - 1 - i) :
            if l3[j] > l3[j + 1] :
                l3[j] , l3[j + 1] = l3[j + 1] , l3[j]
    return l3            

print("合并后排序的数组为:" , merge_sequence(l1 , l2))

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

li = list(input("请输入一个非负数数组:").split())

def is_merge(li : list) :
    for i in range(len(li)):
        if li[i] % 2 != 0:
            for j in range(i + 1, len(li)):
                if li[j] % 2 == 0:
                    li[i], li[j] = li[j], li[i]
                    break
    return li

print("排序后的数组为:" , is_merge(li))

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

li = list(input("请输入一个非负数数组:").split())
def find_wrong(li : list) :
    for i in range(len(li)) :
        for j in int(li[i]) :
            for k in range(1 , 5) :
                if k == j :
                    continue
                else :
                    return i

print("缺失的元素为:" , find_wrong(li))

这道没写出来,代码仅供思路参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值