JavaScript求斐波那契数列的和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript求斐波那契数列的和相关的知识,希望对你有一定的参考价值。

初学者请大神帮忙挑错指点

<script type="text/javascript">
function sum(n)
for(var i=1;i<=n;i++)
var a=1;
var b=1;
c =a+b;
a =b;
b =c;
s=s+sum(n);

return c;

alert(s);
</script>

没看懂你的for循环里要实现什么功能。同时变量s也没有定义。

比较常规的解法是通过递归:

function sum(n) 
    if(n <= 0) return 0;
    if(n === 1 || n === 2) return 1;
    return sum(n - 1) + sum(n - 2);

sum(10);

追问

还没有学递归,不用递归,用最基本的做法呢?

追答function fib(n)    
    var a = 1, b = 1;
    if(n===1 || n===2) return 1;
    for(var i=3; i<=n; i++)
        var tmp = b;
        b = a + b;
        a = tmp;
    
    return b;    

fib(10);

参考技术A function fibSum(length) 
  var a = c = 0, b = sum = 1;
  for (var i = 2; i < length; i++) 
    c = a + b;
    a = b;
    b = c;
    sum += c;
  
  return sum;

alert(fibSum(10));

用递归函数求斐波那契数列的第n项的值

斐波那契函数的定义为
fib(n)=1 (n=0)
1 (n=1)
fib(n-1)+fib(n-2) (n>1)

#include <stdio.h>

int Fibonacci(int n)

if( n == 1 || n == 2) // 递归结束的条件,求前两项

return 1;

else

return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。

int main()

int n;

printf("please input n: ");

scanf("%d",&n);

printf("Result: %d\\n",Fibonacci(n));

return 0;

在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。

扩展资料:

一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。

从第二项开始,每个偶数项的平方都比前后两项之积少1,每个奇数项的平方都比前后两项之积多1。

如:第二项1的平方比它的前一项1和它的后一项2的积2少1,第三项2的平方比它的前一项1和它的后一项3的积3多1。

注:奇数项和偶数项是指项数的奇偶,而并不是指数列的数字本身的奇偶,比如从数列第二项1开始数,第4项5是奇数,但它是偶数项,如果认为5是奇数项,那就误解题意,怎么都说不通。

参考资料来源:百度百科--斐波那契数列

参考技术A

#include <stdio.h>
int fib(int n)
if(n<3)return 1;
 return fib(n-1)+fib(n-2);

int main()
int n;
 scanf("%d",&n);
 printf("%d\\n",fib(n));
 return 0;

参考技术B #include<stdio.h>
fib(int n)
if(n==0) return(0);
else if(n==1) return(1);
else
return(fib(n-1)+fib(n-2));

main()
int n,s;
scanf("%d",&n);
s=fib(n);
printf("%d\n",s);
本回答被提问者和网友采纳
参考技术C #include<stdio.h>
int
fun(int t)

if(t==0)return 0;
if(t==1)return 1;
else return fun(t-1)+fun(t-2);

int
main()

int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
参考技术D 这个还是比较不错的一个选项

以上是关于JavaScript求斐波那契数列的和的主要内容,如果未能解决你的问题,请参考以下文章

递归求斐波那契数列

编写一递归函数求斐波那契数列的前40项

编写一个程序,利用递归函数求斐波那契数列(0,1,1,2,3,5,8,13,21…… )前100项的和

求斐波那契数列

求斐波那契数列

javascript求斐波那契数列