LQ0264 鲁卡斯队列精度计算
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0264 鲁卡斯队列精度计算相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2012初赛 Java A组A题
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
黄金分割数 0.618 与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的 0.618 处,墙上的画像一般也挂在房间高度的 0.618 处,甚至股票的波动据说也能找到 0.618 的影子…
黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618 只是它的近似值,其真值可以通过对 5 开方减去 1 再除以 2 来获得,我们取它的一个较精确的近似值:0.618034。
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
1 3 4 7 11 18 29 47… 称为“鲁卡斯队列”。它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18…会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与 0.618034 一致的精度。
请写出该比值。格式是:分子/分母。比如:29/47。
问题分析
计算精度问题,需要用浮点数经典精度判定方法来实现。
数列求值需要找出其规律,用迭代计算来实现。
AC的C语言程序如下:
/* LQ0264 鲁卡斯队列 */
#include <stdio.h>
#include <math.h>
#define EPS 1e-6
int main()
int a = 1, b = 3, t;
while (fabs((double) a / b - 0.618034) > EPS)
t = a + b, a = b, b = t;
printf("%d/%d\\n", a, b);
return 0;
以上是关于LQ0264 鲁卡斯队列精度计算的主要内容,如果未能解决你的问题,请参考以下文章