[Intermediate Algorithm] - Sum All Odd Fibonacci Numbers
题目
给一个正整数num,返回小于或等于num的斐波纳契奇数之和。
斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。
例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。
测试用例
sumFibs(1)应该返回一个数字。sumFibs(1000)应该返回1785。sumFibs(4000000)应该返回4613732。sumFibs(4)应该返回5。sumFibs(75024)应该返回60696。sumFibs(75025)应该返回135721。
分析思路
斐波那契数第一个和第二个为 1 是固定的,所以初始数组可以设置为: var fibsArray = [1, 1];
然后根据最后一个数等于前两数之和设置下一个数组元素,这样就组成了需要的斐波那契数组。对于奇数直接计算提出就行。
代码
1.function sumFibs(num) {
2. var fibsArray = [1, 1];
3. var retVal = 1;
4.
5. while (fibsArray[fibsArray.length - 1] <= num) {
6. if (fibsArray[fibsArray.length - 1] % 2) {
7. retVal += fibsArray[fibsArray.length - 1];
8. }
9. fibsArray.push(fibsArray[fibsArray.length - 2] + fibsArray[fibsArray.length - 1]);
10. }
11. fibsArray.pop(); /* 去除最后一个大于 num 的数 */
12.
13. return retVal;
14.}
15.
16.sumFibs(4);
另一个不用到数组的方法,该方法主要是针对该题的
1.function sumFibs(num) {
2. var fibo = [1, 1];
3. var oddSum = 2;
4.
5. while(true){
6. var item = fibo[0] + fibo[1];
7. if(num < item){
8. return oddSum;
9. }
10. if(item % 2){
11. oddSum += item;
12. }
13. fibo[0] = fibo[1];
14. fibo[1] = item;
15. }
16.}
17.
18.sumFibs(4);
[Intermediate Algorithm] - Sum All Odd Fibonacci Numbers的更多相关文章
- Sum All Odd Fibonacci Numbers
function sumFibs(num) { //return num; var arr = [1,1]; var add = 2; while(true){ var item = arr[0] + ...
- Sum All Odd Fibonacci Numbers-freecodecamp算法题目
Sum All Odd Fibonacci Numbers 1.要求 给一个正整数num,返回小于或等于num的斐波纳契奇数之和. 斐波纳契数列中的前几个数字是 1.1.2.3.5 和 8,随后的每一 ...
- [Intermediate Algorithm] - Sum All Primes
题目 求小于等于给定数值的质数之和. 只有 1 和它本身两个约数的数叫质数.例如,2 是质数,因为它只能被 1 和 2 整除.1 不是质数,因为它只能被自身整除. 给定的数不一定是质数. 提示 For ...
- codeforces 446C DZY Loves Fibonacci Numbers(数学 or 数论+线段树)(两种方法)
In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation F1 ...
- Codeforces 446-C DZY Loves Fibonacci Numbers 同余 线段树 斐波那契数列
C. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes inp ...
- cf446C DZY Loves Fibonacci Numbers
C. DZY Loves Fibonacci Numbers time limit per test 4 seconds memory limit per test 256 megabytes inp ...
- Codeforces Round #FF 446 C. DZY Loves Fibonacci Numbers
參考:http://www.cnblogs.com/chanme/p/3843859.html 然后我看到在别人的AC的方法里还有这么一种神方法,他预先设定了一个阈值K,当当前的更新操作数j<K ...
- [CodeForces - 447E] E - DZY Loves Fibonacci Numbers
E DZY Loves Fibonacci Numbers In mathematical terms, the sequence Fn of Fibonacci numbers is define ...
- ACM学习历程—Codeforces 446C DZY Loves Fibonacci Numbers(线段树 && 数论)
Description In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence ...
随机推荐
- 3分钟实现小程序唤起微信支付 Laravel教程
微信支付的接入,如果不使用成熟的开发包,将是巨大的工作量. 依赖 EasyWechat 先在 laravel 项目中依赖 easywechat 这个包 composer require "o ...
- 【2】数据采集 - urllib模块
python2环境下关于urllib2的使用可以学习这篇文章.本文主要针对python3环境下使用urllib模块实现简单程序爬虫. 链接:https://www.jianshu.com/p/3183 ...
- Tomcat日志配置远程Syslog采集
http://blog.csdn.net/leizi191110211/article/details/51593748
- list转map工具类,根据指定的字段分组
import org.apache.log4j.Logger; import java.lang.reflect.Method;import java.util.ArrayList;import ja ...
- Object对象具体解释(一)之toString
Object作为Java中超然的存在.当中定义了一切对象都共同拥有的方法. 特点: 1. java.lang包在使用的时候无需显示导入.编译时由编译器自己主动导入. 2. Object类是类层次结构的 ...
- 【VC编程技巧】窗口☞3.6以渐变效果加载对话框
平时我们常常能够看到非常多应用程序启动过程非常酷.什么百叶窗.渐变,各种效果,今天我们看一下怎样在程序中添加这样的效果. 一.演示样例展示: watermark/2/text/aHR0cDovL2Js ...
- UML的基本图(二)
Both sequence diagrams and communication diagrams are kinds of interaction diagrams. An interacti ...
- android.mk中LOCAL_MODULE_TAGS说明【转】
转自http://blog.csdn.net/evilcode/article/details/6459299 LOCAL_MODULE_TAGS :=user eng tests optional ...
- NUnit Console Command Line
https://github.com/nunit/docs/wiki/Console-Command-Line The console interface runner is invoked by a ...
- hdoj--1176--免费馅饼(动态规划)
免费馅饼 Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status D ...