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))