python第三次作业

python第三次作业

1。计算e值

你可以使用下面的数列近似计算e
$$
e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...+\frac{1}{i!}
$$
当i越大时,计算结果越近似于e
2.有1、2、3、4这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?
3.水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本身,例如$153=1^3+5^3+3^3$

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

**输入描述**

输入一个原始数据

**输出描述**

输出一个转换后的数据

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

#分析变量定义变量
a=int(input())
m=1
c=1
for i in range(1,a+1):#采用for in 循环求出阶乘和
    c*=i
    m+=1/c
print(m)
#采用循环
m=int(input())
num=0
for a in range(1,m):
    for b in range(m-1,0,-1):
        for c in range(1,m):
            if a!=b and b!=c and a!=c:
                num+=1
                str(a), str(b), str(c)
                print('第%d种结果 是:%s%s%s' % (num,a,b,c))
for i in range(100,1000):#套用循环得到100到1000的数
    a=i%10
    b=i//10%10
    c=i//100#对各位数进行提取
    if a**3+b**3+c**3==i:
        print(i)
def get_integer_input(prompt):
    while True:
        try:
            value = int(input(prompt))
            return value
        except ValueError:
            print("输入无效,请输入一个整数。")

def get_hex_input(prompt):
    while True:
        value = input(prompt).upper()
        if all(c in "0123456789ABCDEF" for c in value):
            return value
        else:
            print("输入无效,请输入一个有效的十六进制数。")

while True:
    m = get_integer_input("请输入一个整数输入 1 十进制转二进制输入 2 二进十进制 输入 3 十进制转换为十六进制 输入 4 十六进制转换为十进制:")

    if m == 1:
        x = get_integer_input("请输入一个十进制数:")
        if x < 0:
            print("请输入一个非负整数。")
            continue

        s = ""
        while x > 0:
            b = x % 2
            s = str(b) + s
            x = x // 2

        print("结束循环,跳出循环")
        print("转换后的二进制数据:", s)

    elif m == 2:
        def binary(binary_str):
            decimal_value = 0
            binary_str = binary_str[::-1]
            for i, bit in enumerate(binary_str):
                if bit == '1':
                    decimal_value += 2 ** i
            return decimal_value

        binary_str = get_integer_input("请输入一个二进制数:")
        decimal_value = binary(str(binary_str))
        print(f"二进制数 {binary_str} 转换为十进制数为 {decimal_value}")

    elif m == 3:
        def decimal_to_hexadecimal(decimal_num):
            hex_chars = "0123456789ABCDEF"
            hexadecimal_str = ""
            while decimal_num > 0:
                remainder = decimal_num % 16
                hexadecimal_str = hex_chars[remainder] + hexadecimal_str
                decimal_num //= 16
            return hexadecimal_str

        decimal_num = get_integer_input("请输入一个十进制数:")
        hexadecimal_str = decimal_to_hexadecimal(decimal_num)
        print(f"十进制数 {decimal_num} 转换为十六进制数为 {hexadecimal_str}")

    elif m == 4:
        def hexadecimal_to(hexadecimal_str):
            hex_chars = "0123456789ABCDEF"
            decimal_value = 0
            hexadecimal_str = hexadecimal_str.upper()[::-1]
            for i, char in enumerate(hexadecimal_str):
                decimal_value += hex_chars.index(char) * (16 ** i)
            return decimal_value

        hexadecimal_str = get_hex_input("请输入一个十六进制数:")
        decimal_value = hexadecimal_to(hexadecimal_str)
        print(f"十六进制数 {hexadecimal_str} 转换为十进制数为 {decimal_value}")

    else:
        print("无效的输入,请重新选择。")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值