依旧是fcc上的题目,今天第一道题:
Sum All Odd Fibonacci Numbers
给一个正整数
num
,返回小于或等于num
的斐波纳契奇数之和。斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。
例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。
提示:此题不能用递归来实现斐波纳契数列。因为当
num
较大时,内存会溢出,推荐用数组来实现。如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
个人解答:
function sumFibs(n) {
var cache = [1,1];
var sum = cache[0] + cache[1];
for(var i = 2; cache[i-1] + cache[i-2] <= n; i++) {
cache[i] = cache[i-1] + cache[i-2];
if(cache[i] % 2) {
sum += cache[i];
}
}
return sum;
}
sumFibs(75025);
第二道题:
Sum All Primes
求小于等于给定数值的质数之和。
只有 1 和它本身两个约数的数叫质数。例如,2 是质数,因为它只能被 1 和 2 整除。1 不是质数,因为它只能被自身整除。
给定的数不一定是质数。
如果你被卡住了,记得开大招 Read-Search-Ask。尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
个人解答:
function sumPrimes(num) {
var sum = 0;
for(var i = 2; i <= num;i++) {
if(isPrime(i)) {
sum += i;
}
}
return sum;
}
function isPrime(num) {
tar = Math.sqrt(num);
for(var i = 2; i <= tar; i++) {
if(num % i === 0) {
return false;
}
}
return true;
}
sumPrimes(4);
今天做的两道题都比较简单~