请您留下宝贵的建议吧:)
广西百色高中欢迎您!

| 网站首页 | 学校概况 | 软件下载 | 图片中心 | 雁过留声 | 视频资源 | 校长信箱 | 内 部 网 |
| 同 学 录 | 网络办公 | 教学课件 | 优秀教案 | 试卷下载 | 教学素材 | 教学论文 | 电子图书 |

 
您现在的位置: 广西百色高中校园网 >> 学校概况 >> 学生频道 >> 信息技术 >> 精典程序 >> 文章正文 用户登录 新用户注册
   
   

菲波拉契数列          【字体:
菲波拉契数列
作者:仔仔    文章来源:本站原创    点击数:    更新时间:2006-9-26
菲波拉契数列
 

问题描述】著名的菲波拉契(Fibonacci)数列,其第一项为0,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。
分析】按菲波拉契数列的原则,数列为:0 1 1 2 3 5 8 13 21 34 55 ……无疑地,寻找其项数位置与项值的关系(即通项公式)是非常困难的。而根椐该数列的形成规则,其有一个的公式即“Un=Un-1+Un-2”表明了相邻的数据项之间的明显关系。因此,可以其作为递推公式,以已知项0与1为起点,逐项产生第3项、第4项、……,直到取得需要的第N项为止。
Pascal代码
program Fibonacci;
var
 n,i:longint;
 function fib(n:longint):longint;{用递归算法求出数列中第N项}
 begin
  if n=1 then fib:=0;
  if n=2 then fib:=1;
  if n>2 then fib:=fib(n-1)+fib(n-2);
 end;
begin
 write("Input N:");
 readln(n);
 for i:=1 to n do write(" ",fib(i));{输出前N项}
 readln;
end.
说明:下面是用非递归算法求第N项的方法
function fbi(n:longint):longint;
var
 i,j,k,p:longint;
begin
 i:=2;
 j:=0;
 k:=1;
 repeat
  i:=i+1;
  p:=j+k;
  j:=k;
  k:=p;
 until i=n;
 fbi:=p; 
end.
C代码
#include<stdio.h>
int fbi(int n)
{
 if (n==1) return 0;
 if (n==2) return 1;
 if (n>2) return fbi(n-1)+fbi(n-2); else return 0; 
}
void main()
{
 int n,i;
 printf("Input N:");
 scanf("%d",&n);
 for (i=1;i<=n;i++) printf("d% ",fbi(i));
 getch();
}

文章录入:qinjun    责任编辑:qinjun 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
          最新热点       最新推荐       相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

       
     
     
     
    广西百色高中欢迎您!   网站地图 | 联系站长 | 友情链接 | 用户排行 | 版权申明 | 管理登录
    版权所有 Copyright© 2005-2010 广西百色高中 (桂ICP备05013955号)
    学校地址:广西百色市城乡路93号 电话号码:0776-2824142 传真:0776-2847293 邮政编码:533000
    站    长:覃钧  QQ:75331465            改版时间:2007年8月20日