python第三次作业

1.计算e

题目描述

你可以使用下面的数列近似计算e
e=1+11!+12!+13!+14!+...+1i! e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...+\frac{1}{i!} e=1+1!1+2!1+3!1+4!1+...+i!1
当i越大时,计算结果越近似于e

#输入整数i
i = int(input("请输入循环次数:"))
#构建函数
def hanshu_e(n):
    tatol = 0
    fenmu = 0
    #遍历
    for j in range(n + 1):
        if j == 0 or j == 1:
            fenmu = 1
        else:
            fenmu *= j
        tatol += 1 / fenmu
    return tatol
#调用函数
x = hanshu_e(i)
#打印结果
print(x)

2.组合

题目描述

有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?

#创建列表
numbers = []
#遍历
for i in range(1,5):
    for j in range(1,5):
        if j != i:
            for k in range(1,5):
                if k != i and k != j:
                    num = i * 100 + j * 10 + k
                    #将满足条件的数字加入到列表中
                    numbers.append(num)
#打印
print(len(numbers))
print(numbers)

3.水仙花

题目描述

水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身,例如153=13+53+33153=1^3+5^3+3^3153=13+53+33

编写程序,输出所有的水仙花数

for num in range(100,1000):
    #运算
    h = num // 100
    t = (num // 10) % 10
    u = num % 10
    #判断是否符合条件
    if num == h ** 3 + t ** 3 + u ** 3:
        #打印
        print(num)

4.进制

题目描述

编写代码,实现十进制数据转换二进制、二进制转换十进制、十进制转换十六进制、十六进制转换十进制的代码实现

输入描述

输入一个原始数据

输出描述

输出一个转换后的数据

示例

输入一个数据(十进制): 3
输出(二进制):11

#十进制转二进制
def decimal_to_binary(n):
    if n == 0:
        return '0'
    elif n == 1:
        return '1'
    else:
        return decimal_to_binary(n // 2) + str(n % 2)
#二进制转十进制
def binary_to_decimal(binary_num):
    if len(binary_num) == 1:
        return int(binary_num)
    else:
        return binary_to_decimal(binary_num[:-1]) * 2 + int(binary_num[-1])
#十进制转十六进制
def decimal_to_hexadecimal(n):
    hex_digits = "0123456789ABCDEF"
    if n == 0:
        return '0'
    else:
        return decimal_to_hexadecimal(n // 16) + hex_digits[n % 16]
#十六进制转十进制
def hexadecimal_to_decimal(hex_num):
    hex_digits = "0123456789ABCDEF"
    if len(hex_num) == 1:
        return hex_digits.index(hex_num)
    else:
        return hexadecimal_to_decimal(hex_num[:-1]) * 16 + hex_digits.index(hex_num[-1])

# 测试
decimal_num = 3
print("十进制数", decimal_num, "转换为二进制:", decimal_to_binary(decimal_num))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值