这不是上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
E nd
Sub
java (其实是js)其实是俺现学的。把下面的代码考到一个记事本文件里,保存时把扩展名存为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

俺总归不是专业人士,程序效率不高,不过能看到这些得用上面的代码应付一下作业应该没问题。
c++的斐波那契数列源程序,用了递归。感觉c++确实有些罗嗦。这算是面向机器的工业设计思想,不值得提倡。
java (其实是js)其实是俺现学的。把下面的代码考到一个记事本文件里,保存时把扩展名存为html或者htm就能看到运行结果。这个程序用了个while循环,没用数组。
{
以下是输出结果。html和js俺不是很熟(其实各种编程语言俺都不是很熟),没怎么排版,比较乱。
这个应该是斐波那契数列的通项还有前n项和,在这里是前50项的。可以通过改变上面的代码自己找出前n项的。
如果不嫌麻烦,可以用通项公式F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}自己算。
斐波那契数列前n项和
第 0项是
第 1项是
第 2项是
第 3项是
第 4项是
第 5项是
第 6项是
第 7项是
第 8项是
第 9项是
第 10项是
第 11项是
第 12项是
第 13项是
第 14项是
第 15项是
第 16项是
第 17项是
第 18项是
第 19项是
第 20项是
第 21项是
第 22项是
第 23项是
第 24项是
第 25项是
第 26项是
第 27项是
第 28项是
第 29项是
第 30项是
第 31项是
第 32项是
第 33项是
第 34项是
第 35项是
第 36项是
第 37项是
第 38项是
第 39项是
第 40项是
第 41项是
第 42项是
第 43项是
第 44项是
第 45项是
第 46项是
第 47项是
第 48项是
第 49项是
第 50项是
俺总归不是专业人士,程序效率不高,不过能看到这些得用上面的代码应付一下作业应该没问题。

插入表情