您的位置:首页 > 编程语言 > Java开发

Java进阶之欧拉工程 第二篇【持续更新】

2014-08-14 14:28 183 查看
这篇就来讲欧拉工程第二题 斐波那契数列求百万和问题,下面引入原题

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...By considering the terms in the Fibonacci sequence whose values do not
exceed four million, find the sum of the even-valued terms.


翻译 :斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。

解题思路:

刚看到这道题的时候不妨多写几个数字找找规律,

1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , 233 , 奇 ,偶,奇,奇 , 偶, 奇
, 奇 , 偶 , 奇 , 奇 , 偶 , 这样看其实规律也就出来了除去1,2其余数字每三个中就有一个偶数,并且偶数等于其余两个数之和,为了计算方便,不妨补全数列 1 , 1 , 2 , 3 , 5 , 8.........由此只要计算这些“112,358,....奇奇偶” 数列的总和的一半就可以得到题目要求的答案了,以下为java的算法
,值得一提的是由于最初补充了一个1,本来计算结果需要去掉这个1,但是由于这里的结果恰好为整数,这个1除的时候被int的整数机制自动去余了,下面是代码:

int a =1 ,b =1, c= 2;
int sum =0;
while(c<4000000){
sum=sum+a+b+c;
a=b+c;
b=a+c;
c=a+b;
}
int answer=(sum)/2;
system.out.println(answer);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: