python作业

    不死兔子(一对刚刚出生的兔子,四个月之后,会称为成年的兔子,成年兔子每月会生一对小兔子,等N月时,共有多少对兔子)

def rabbit(n):
    if n <= 0:
        print('error')
    elif 0 < n <= 4:
        return n
    else:
        return rabbit(n - 1) + rabbit(n - 3)


n = int(input("请输入相关的月份:"))
print(rabbit(n))

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

def is_palindromic(num):
    str_len = len(num)
    index = str_len // 2
    str1 = num[:index]
    str2 = num[index:][::-1]
    if str1 == str2:
        return True
    else:
        return False


nums = input("请输入要判断的字符串:")
if is_palindromic(nums):
    print("是回文字符串")
else:
    print("不是回文字符串")


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

def prime_number(n):
    i = 2
    if n % 2 == 0 and n != 2 or n == 1:
        return False
    for i in range(2, n // 2):
        if n % i == 0:
            return False
    return True


def find_sum(n):
    s = 0
    for i in range(1, n):
        if prime_number(i):
            s += i
    return s


num = int(input("请输入:"))
print(f"1~{num}的质数和为:{find_sum(num)}")


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

def accumulation(a, i):
    if a >= 10 or a <= 0:
        return -1
    s = a
    for j in range(1, i):
        s += (a * 10 + a)
    return s


num = int(input("请输入a:"))
num1 = int(input("请输入项数:"))
print(f"和为{accumulation(num, num1)}")


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

def merge_sorted_arrays(arr1, arr2):
    merged_arr = []
    i = 0
    j = 0
    
    while i < len(arr1) and j < len(arr2):
        if arr1[i] < arr2[j]:
            merged_arr.append(arr1[i])
            i += 1
        else:
            merged_arr.append(arr2[j])
            j += 1
    
    merged_arr.extend(arr1[i:])
    merged_arr.extend(arr2[j:])
    
    return merged_arr
 
arr1 = list(map(int , input("请依次输入有序列表1(使用空格隔开):").split(" ")))
arr2 = list(map(int , input("请依次输入有序列表2(使用空格隔开):").split(" ")))
 
print(f"未合并的列表:{arr1},{arr2}")
merged = merge_sorted_arrays(arr1, arr2)
print(f"合并后的列表{merged}")


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

def even_before_odd(ls = []):
    '''
    将一个非负整数数组中的所有偶数都放在奇数元素之前
    '''
    for i in range(len(ls)):
        if ls[i] % 2 != 0:
            for j in range(i+1,len(ls)):
                if ls[j] % 2 == 0:
                    ls[i],ls[j] = ls[j],ls[i]
                    break
    return ls
 
ls = [1,2,3,4,5,6,7,8,9]
print(f'原列表为:{ls}')
print(f'将偶数置于奇数前,列表变为:{even_before_odd(ls)}')


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

    

def find_num(nums):
    for i in range(len(nums) - 1):
        if nums[i + 1] - nums[i] != 1:
            return nums[i] + 1
    return -1


num = [1, 2, 3, 5, 6, 7, 8, 9]
print(f"缺少的元素为:{find_num(num)}")


    小明有一堆苹果,他每天吃掉这堆的一半加一个,等第六天,小明剩余1个苹果,问,这堆苹果共多少个?

def count(n):
    i = 0
    s = 1
    while i < n:
        s += (2 * s + 1)
        i += 1
    return s


num = int(input("小明吃了几天:"))
print(f"原来有{count(num)}个苹果")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值