#这里引用了时间函数 因为是算法设计,有时需要优化 根据自己的时间需求就可以进行结构上的优化
import time
from fractions import Fraction
#程序开始运行的 开始时间
start = time.process_time_ns()
#定义一个名字为fun的函数
def fun():
#a为不等式左边的数
#b为不等式右边的数 根据不等式的原则 输入时要a<b
a=int(input("请输入第一个数:"))
b=int(input("请输入第二个数:"))
i=j=m=0
#要先从最左端开始判断
#在m>=a时会跳出循环,否则一直执行
while m < a:
#下面这三个式子就比较巧妙的解决了分数套分数相加的问题,大家可以梳理一下
i+=1
j=j+1/i
m=m+1/j
#i2为要的n值范围的最大值
i2=i
#跟上面一样,从最右端开始判断
while m < b:
i += 1
j = j + 1/ i
m = m + 1/ j
#i3为要的n值范围的最大值
i3=i-1
print("满足不等式的正整数n为:",i2,"<=n<=",i3)
fun()
#这里获取整个程序执行完的时间
end = time.process_time_ns()
print('Running time: %s ns'%(end-start))

【算法设计】解不等式:设n为正整数,解不等式 2010<1+1/(1+1/2)+1/(1+1/2+1/3)+⋯+1/(1+1/2+⋯+1/n)<2011
于 2022-03-16 22:58:09 首次发布