以下数列0 1 1 2 3 5 8 13 21 …被称为斐波纳契数列。
这个数列从第3项开始,每一项都等于前两项之和。
题目描述
输入一个整数N,请你输出这个序列的前N项。
输入格式
一个整数N。
数据范围
0<N<46
输入样式
5
输出样式
0 1 1 2 3
题解一(不用数组)
#include<stdio.h>
int main()
{
int a=0,b=1,n;
scanf("%d",&n);
if(n==1) printf("0 ");
if(n==2) printf("0 1 ");
if(n>=3){
printf("0 1 ");
for(int i=3;i<=n;i++)
{
int c=a+b;
printf("%d ",c);
a=b;b=c;
}
}
return 0;
}
题解二(利用数组操作)
#include<stdio.h>
int number[50]={0,0,1};
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
if(i>2)
number[i]=number[i-1]+number[i-2];
}
for(int i=1;i<=n;i++){
printf("%d ",number[i]);
}
return 0;
}