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
俺总归不是专业人士,程序效率不高,不过能看到这些得用上面的代码应付一下作业应该没问题。















