概述
Problem 57
It is possible to show that the square root of two can be expressed as an infinite continued fraction.
By expanding this for the first four iterations, we get:
1 + 1/2 = 3/2 = 1.5
1 + 1/(2 + 1/2) = 7/5 = 1.4
1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666…
1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379…
The next three expansions are 99/70, 239/169, and 577/408, but the eighth expansion, 1393/985, is the first example where the number of digits in the numerator exceeds the number of digits in the denominator.
In the first one-thousand expansions, how many fractions contain a numerator with more digits than denominator?
2的平方根可以用一个无限连分数表示:将连分数计算取前四次迭代展开式分别是:
1 + 1/2 = 3/2 = 1.5
1 + 1/(2 + 1/2) = 7/5 = 1.4
1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666…
1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379…
接下来的三个迭代展开式分别是99/70、239/169和577/408,但是直到第八个迭代展开式1393/985,分子的位数第一次超过分母的位数。
在前一千个迭代展开式中,有多少个分数分子的位数多于分母的位数?
count = 0
a = 1
b = 1
for i in range(1, 1001):
a,b = (2*b+a),(a+b)
if len(str(a)) > len(str(b)):
count += 1
print(count)
Project Euler 到一段落了,后续的题逐渐变难,以后有空的时候再研究吧。
最后
以上就是哭泣玉米为你收集整理的Project Euler Problem 57的全部内容,希望文章能够帮你解决Project Euler Problem 57所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复