不是俺的博客

这是与俺无关的俺的博客?

« 俺与物理学 (大学物理小论文)这几天颇为不顺……………………而且有了桃花霉运………… »

用c++、java script、basic、三种语言并分别用递归、for循环、while循环三种不同方法做的斐波那契数列

这不是上c++课么,恰巧前几天用过斐波那契数列(又名兔子数列),俺就顺便做了个放这儿了。


c++的斐波那契数列源程序,用了递归。感觉c++确实有些罗嗦。这算是面向机器的工业设计思想,不值得提倡。 也就是说,电脑看c++会觉得很舒服,但是程序员(当然包括俺们学生们)会用得很苦。
    #include<iostream.h>
    int fib(int n)
    {
    int f=0;
       if(n==1)return 0;
       if(n==2)return 1;
       f=fib(n-1)+fib(n-2);
    return f;
    }
    int main()
    {
    int n,i,m=0;
   
    cin>>n;
    m=fib(n);
    cout<<"第"<<n<<"项是"<<m<<endl;
    m=0;
    for(i=1;i<=n;i++)m=fib(i)+m;
    cout<<"第"<<n<<"项是"<<m<<endl;;
    return 0;
    }

VB的斐波那契数列代码,使用最常见的for循环加数组。窗口用了三个文本框,一个按钮。当时俺用的电脑没有c++,只好用excel的Visual Basic编辑器(word也有)。这个就是做宏的东西。
Private Sub CommandButton1_Click()
Dim i As Integer
Dim a(200) As Integer
Dim n As Integer
n = TextBox1.Text
a(1) = 0
a(2) = 1

For i = 3 To n
a(i) = a(i - 1) + a(i - 2)
Next i
TextBox2.Text = a(n)
TextBox3.Text = 0
m = 0
For i = 1 To n
m = m + a(i)
Next i
TextBox3.Text = m
End Sub



Java script其实是俺现学的。把下面的代码考到一个记事本文件里,保存时把扩展名存为html或者htm就能看到运行结果。这个程序用了个while循环,没用数组。
    <html>
    <head><title>斐波那契数列</title></head>
    <body>

    斐波那契数列前n项和<br />
    <script lauguage="Javascript">

    var a,b,c,m,i;

    i=1;
    a=0;
    b=1;
    m=0;
    while (i<=50)  //改变这个数值就能看前n项还有前n项和。

{
        c=a+b;
        m=m+c;
        document.write("第 " + i + "项是 "+ c + "    " + "前       面每项的和是 " + m);
       document.write("<br />")
       a=b;
       b=c;
        i=i+1
    }
    </script>

    </body>
    </html>
以下是输出结果。html和js俺不是很熟(其实各种编程语言俺都不是很熟),没怎么排版,比较乱。
这个应该是斐波那契数列的通项还有前n项和,在这里是前50项的。可以通过改变上面的代码自己找出前n项的。
如果不嫌麻烦,可以用通项公式F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}自己算。
斐波那契数列前n项和
第 0项是 1 前面每项的和是 1
第 1项是 2 前面每项的和是 3
第 2项是 3 前面每项的和是 6
第 3项是 5 前面每项的和是 11
第 4项是 8 前面每项的和是 19
第 5项是 13 前面每项的和是 32
第 6项是 21 前面每项的和是 53
第 7项是 34 前面每项的和是 87
第 8项是 55 前面每项的和是 142
第 9项是 89 前面每项的和是 231
第 10项是 144 前面每项的和是 375
第 11项是 233 前面每项的和是 608
第 12项是 377 前面每项的和是 985
第 13项是 610 前面每项的和是 1595
第 14项是 987 前面每项的和是 2582
第 15项是 1597 前面每项的和是 4179
第 16项是 2584 前面每项的和是 6763
第 17项是 4181 前面每项的和是 10944
第 18项是 6765 前面每项的和是 17709
第 19项是 10946 前面每项的和是 28655
第 20项是 17711 前面每项的和是 46366
第 21项是 28657 前面每项的和是 75023
第 22项是 46368 前面每项的和是 121391
第 23项是 75025 前面每项的和是 196416
第 24项是 121393 前面每项的和是 317809
第 25项是 196418 前面每项的和是 514227
第 26项是 317811 前面每项的和是 832038
第 27项是 514229 前面每项的和是 1346267
第 28项是 832040 前面每项的和是 2178307
第 29项是 1346269 前面每项的和是 3524576
第 30项是 2178309 前面每项的和是 5702885
第 31项是 3524578 前面每项的和是 9227463
第 32项是 5702887 前面每项的和是 14930350
第 33项是 9227465 前面每项的和是 24157815
第 34项是 14930352 前面每项的和是 39088167
第 35项是 24157817 前面每项的和是 63245984
第 36项是 39088169 前面每项的和是 102334153
第 37项是 63245986 前面每项的和是 165580139
第 38项是 102334155 前面每项的和是 267914294
第 39项是 165580141 前面每项的和是 433494435
第 40项是 267914296 前面每项的和是 701408731
第 41项是 433494437 前面每项的和是 1134903168
第 42项是 701408733 前面每项的和是 1836311901
第 43项是 1134903170 前面每项的和是 2971215071
第 44项是 1836311903 前面每项的和是 4807526974
第 45项是 2971215073 前面每项的和是 7778742047
第 46项是 4807526976 前面每项的和是 12586269023
第 47项是 7778742049 前面每项的和是 20365011072
第 48项是 12586269025 前面每项的和是 32951280097
第 49项是 20365011074 前面每项的和是 53316291171
第 50项是 32951280099 前面每项的和是 86267571270


俺总归不是专业人士,程序效率不高,不过能看到这些得用上面的代码应付一下作业应该没问题。
如果这种东西还有人要转载,可以保留下面两段:

本文链接地址:http://www.butwho.net/2007/06/Fibonacci.html

这是 不是俺的原创文章! 不是俺的博客[http://www.butwho.net]


您可以收藏本文: 用google书签收藏 用“美味书签”收藏 用yahoo收藏 用新浪vivi收藏 用365key收藏 分享到饭否 收藏到qq网摘 用windows live书签收藏 添加到百度搜藏 收藏到“就喜欢” 用收客收藏
 或者您可以订阅俺的博客,这样您即使坐在家里也能看到俺的文章了! rss Feed

 

  • 相关文章:

发表评论:

有什么话尽管说!

最新评论及回复

最近发表

随机文章

Powered By Z-Blog 1.8 Spirit Build 80722

~` 这儿的东西要用署名-非商业性使用-相同方式共享协议进行许可。您在转载的时候最好注意这个,还得链接到俺这儿。谢谢啊!