一:计算e
计算e 题目描述 你可以使用下面的数列近似计算e e=1+\frac{1}{1!}+ \frac{1}{2!}+ \frac{1}{3!}+ \frac{1}{4!}+ ...+ \frac{1}{i!} 当i越大时,计算结果越近似于e
while True:
try:
#输入循环次数
n=int(input("请输入计算的精度:"))
#给变量赋值
i=0
sum=1
x=0
#循环运算
while i < n:
sum=sum+sum*i #计算阶乘
x=x+1/sum #计算阶乘分数
i += 1
#计算e的值
e=1+x
print("e的值为:",e)
if input("按Q退出,按任意键继续:") == "Q":
break
except:
input("您输入了一个非法数据,请按任意键继续")
运行截图
二:不重复数
有1、2、3、4这个四个数字, 能组成多少个互不相同且无重复数字的三位数? 分别又是多少?
n=0
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if x != y and y != z and z != x:
print("三位数为",x*100+y*10+z)
n += 1
print("一共有",n,"个不同的三位数")
运行截图
三:水仙花
水仙花数,是一个三位数,且这个数的个位、十位和百位的立方和等于该数字本 身,例如$153=1^3+5^3+3^3$ 编写程序,输出所有的水仙花数
方法一
for x in range(1,10):
for y in range(0,10):
for z in range(0,10):
if x*x*x+y*y*y+z*z*z == x*100+y*10+z:
print("水仙花数有",x*100+y*10+z)
方法二
for i in range(100,1000):
a=i // 100
b=i // 10 % 10
c=i % 10
if a**3+b**3+c**3 == i:
print(i,"是水仙花数")
运行截图
四:进制转换
编写代码,实现十进制数据转换二进制、二进制转换十进制、十进制转换十六进制、十六进制转换十进制的代码实现
try:
# 输入一个原始数据
demical_1 = int(input("请输入一个十进制数:"))
binary_1 = int(input("请输入一个二进制数:"))
decimal_n1 = int(input("请输入一个十进制数:"))
hex_string = input("请输入一个十六进制数:")
# 十进制转换二进制
# 循环获取余数
n = demical_1
remainder = ""
while True:
# 获取整数数据
x = n // 2
# 获取余数
y = n % 2
# 拼接余数
remainder = str(y) + remainder
n = x
# 判断是否跳出循环
if x == 0:
break
# 二进制转换十进制
sum = 0
m = binary_1
while m // 10 != 0:
sum = sum + m % 10 * 2 ** x
m = m // 10
x = x + 1
sum = sum + 2 ** x
# 十进制转换十六进制(整形)
def decimal_to_hexadecimal(decimal_n1):
if decimal_n1 == 0:
return "0"
hex_digits = "0123456789ABCDEF"
hex_number = ""
while decimal_n1 > 0:
remainder = decimal_n1 % 16
hex_number = hex_digits[remainder] + hex_number
decimal_n1 //= 16
return hex_number
hex_number = decimal_to_hexadecimal(decimal_n1)
# 十六进制转十进制(字符)
def manual_hex_to_decimal(hex_str):
# 定义十六进制字符到十进制的映射
hex_map = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4,
'5': 5, '6': 6, '7': 7, '8': 8, '9': 9,
'A': 10, 'B': 11, 'C': 12, 'D': 13, 'E': 14, 'F': 15}
# 反转十六进制字符串
reversed_hex = hex_str[::-1]
decimal_value = 0
# 遍历每一个字符并计算对应的十进制值
for i, char in enumerate(reversed_hex):
decimal_value += hex_map[char.upper()] * (16 ** i)
return decimal_value
decimal_n2 = manual_hex_to_decimal(hex_string)
# 输出结果
print(f"十进制转二进制:{demical_1 } -> {remainder}")
print(f"二进制转十进制:{binary_1} -> {sum}")
print(f"十进制转十六进制: {decimal_n1} -> {hex_number}")
print(f"十六进制转十进制:{hex_string} -> {decimal_n2}")
except:
print("输入有误")
运行截图