2024/4/17
所学时间:2小时
代码行数:100
博客园数:1篇
所学知识:
def kaprekar(num):
while num != 6174:
digits = [int(x) for x in str(num)]
digits.sort()
asc_num = int(''.join(map(str, digits)))
digits.sort(reverse=True)
desc_num = int(''.join(map(str, digits)))
num = desc_num - asc_num
print(num, end=' ')
# 读取输入的4位数
num = input("请输入一个任意各位数字不相同的4位数:")
num = int(num)
# 验证6174猜想
print(num, end=' ')
kaprekar(num)
def count_ways(n):
if n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
else:
# 初始化台阶数为1、2、3的情况
a, b, c = 1, 2, 4
ways = 0
# 从第4个台阶开始计算方法数
for i in range(4, n+1):
ways = a + b + c
a, b, c = b, c, ways
return ways
# 读取输入的楼梯台阶数
n = int(input())
# 计算小朋友上这段楼梯的方法数
ways = count_ways(n)
# 输出结果
print(ways)
def lru(page_sequence, n):
page_frames = [] # 存储主存块页面
page_faults = 0 # 缺页次数
page_order = [] # 存储页面的访问顺序
for page in page_sequence:
if page not in page_frames:
page_faults += 1
if len(page_frames) < n:
page_frames.append(page)
page_order.append(page)
else:
# 找到最早访问的页面并替换
replace_page = page_order.pop(0)
page_frames[page_frames.index(replace_page)] = page
page_order.append(page)
else:
# 更新页面的访问顺序
page_order.remove(page)
page_order.append(page)
return page_faults
# 读取输入的主存块数量和页面访问次序
n = int(input())
page_sequence = list(map(int, input().split()))
# 计算缺页次数
page_faults = lru(page_sequence, n)
# 输出结果
print(page_faults)
def f(a, b, c, d, x):
return a * x**3 + b * x**2 + c * x + d
def f_prime(a, b, c, x):
return 3 * a * x**2 + 2 * b * x + c
def newton_method(a, b, c, d, x0, tolerance=1e-6, max_iterations=1000):
x = x0
for _ in range(max_iterations):
fx = f(a, b, c, d, x)
f_prime_x = f_prime(a, b, c, x)
x_new = x - fx / f_prime_x
if abs(x_new - x) < tolerance:
return round(x_new, 2)
x = x_new
return None
# 读取输入的方程系数和实数x
a, b, c, d, x = map(float, input().split())
# 使用牛顿迭代法求实根
result = newton_method(a, b, c, d, x)
# 输出实根
print(result)