循环法:
//
//2013年6月3日14:39:17
//
//作者:小代码
//
//编译器:CodeBlocks10.05
//
//题目:
//Description
//
//斐波纳契数列
//1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。
//Input
//
//一个整数N(N不能大于40)
//Output
//
//由N个“斐波纳契数”组成的“斐波纳契数列”。
//Sample Input
//6
//Sample Output
//1 1 2 3 5 8
#include <stdio.h>
#include<stdlib.h>
int main()
{
int n;//要输出的项数
int *PEI = NULL;//保存数列
int i;//循环控制
printf("输入项数(小于40):\n");
scanf("%d",&n);//接收数据
PEI = ( int * )malloc( n * sizeof( int ) );//开辟数组
*PEI = 1;//初始化第一项
*( PEI + 1 ) = 1;//初始化第二项
for( i = 2; i < n; i++ )//初始化其他项
{
*( PEI + i ) = *( PEI + i - 1 ) + *( PEI + i - 2 );
}
for( i = 0; i < n; i++ )//输出
{
printf("%-10d ",*( PEI + i ));
if( 0 == ( i + 1 ) % 5 )
{
printf("\n");
}
}
printf("\n\nHello World\n");
system("pause");
return 0;
}
运行效果图:
递归法:
//
//2013年6月3日14:39:17
//
//作者:小代码
//
//编译器:CodeBlocks10.05
//
//题目:
//Description
//
//斐波纳契数列
//1,1,2,3,5,8,13,21,34,55,89……这个数列则称为“斐波纳契数列”,其中每个数字都是“斐波纳契数”。
//Input
//
//一个整数N(N不能大于40)
//Output
//
//由N个“斐波纳契数”组成的“斐波纳契数列”。
//Sample Input
//6
//Sample Output
//1 1 2 3 5 8
#include <stdio.h>
#include<stdlib.h>
int main()
{
int fun_1041( int in );//使用递归法生成斐波纳契数列
int in;//保存项数
int i;//输出循环控制
int t;//暂时保存数列元素
printf("输入一个整数:\n");
scanf("%d",&in);//接收数据
for( i = 0; i < in; i++ )
{
t = fun_1041( i );
printf("%-10d",t);
if( 0 == ( i + 1 ) % 5 )
{
printf("\n");
}
}
printf("\n\nHello World\n");
system("pause");
return 0;
}
//使用递归法生成斐波纳契数列
int fun_1041( int in )
{
int i;//循环控制
if( 0 == in || 1 == in )
{
return 1;
}
else
{
int t = fun_1041( in - 1 ) + fun_1041( in - 2 );
return t;
}
}
运行效果图: