用$\varphi$的连分数展开作计算:
$$\varphi=1+\frac{1}{1+\frac{1}{1+\ldots}},$$
不难看出有限项后截断所得分数就是斐波那契数列中的连续两项之比$a_{n+1}/a_{n}$。
最后为了便于输出,整数部分和小数点直接写在输出字符串中,再利用$\varphi$的小数部分就是$1/\varphi$的性质,输出$a_{n}/a_{n+1}$作为小数部分。
最终代码只有一行。
代码长度:59字节 vs. 全站第一:53字节。
a,b=1,2;exec('a,b=b,a+b;'*2500);print('1.'+str(a*10**1000//b))
|