C++!! 编写子函数求Fibonacci数列(费波纳契数列)的前n个数。

编写子函数求Fibonacci数列(费波纳契数列)的前n个数。这个数列有以下特点:第1,2个数为1,1。从第3个数开始,该数是其前面两个数之和。在主函数中调用子函数,并输出结果,要求每行输出4个数据,每个数据占12位的宽度。

第1个回答  2011-05-16
#include <stdio.h>

int main(void)
{
unsigned int f1 = 1, f2 = 1, f;
int n;
int i;

printf("输入n的值:");
scanf("%d", &n);
printf("%12u%12u", f1, f2);
for (i = 3; i <= n; ++i)
{
printf("%12u", f = f1+f2);
f1 = f2;
f2 = f;
if (i % 4 == 0)
printf("\n");
}
printf("\n");
return 0;
}本回答被提问者采纳
第2个回答  2011-05-16
#include<iostream>
#include<iomanip>
using namespace std;
long Fibonacci(int n)
{
if(n==1||n==2) return 1;
else return Fibonacci(n-1)+Fibonacci(n-2);
}
void main()
{
int item;
cout<<"请输入数列输出的项数"<<endl;
cin>>item;
for(int i=1;i<=item;i++)
{
cout<<setw(12)<<Fibonacci(i);
if(i>1&&i%4==0)
cout<<endl;
}
cout<<endl;
}