fibibacci数列:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
#include <stdio.h>
int main(int argc, char const *argv[])
{
//fibibacci数列:377 233 144 89 55 34 21 13 8 5 3 2 1 1 0
int n=0;
printf("input:");
scanf("%d",&n);
int arr[32] = {};
int i = 0;
//arr[0] = 0;
arr[1] = 1;
for (; i < n-2; i++) //i < n 的时候[i+2]越界
{
arr[i + 2] = arr[i] + arr[i + 1];
// printf("%d ",arr[i]);
}
for (i = n-1; i >= 0; i--)
{
printf("%d ", arr[i]);
}
putchar(10);
return 0;
}
用函数逆序输出斐波那契数列
#include<stdio.h>
//fibibacci数列:377 233 144 89 55 34 21 13 8 5 3 2 1 1 0
int fbi(int x)
{
if( x<2)
return x==0?0:1;
return fbi(x-1)+fbi(x-2);
}
int main()
{
int n = 0;
printf("input:");
scanf("%d",&n);
int j;
int arr[32] = {0};
for(j = n-1;j >=0;j--)
printf("%d ",fbi(j));
printf("\n");
return 0;
}
fibibacci数列: 1 1 2 3 5 8 13 21 34 55 89 144 233 377
#include<stdio.h>
//fibibacci数列:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
int main()
{
int n = 0;
printf("input:");
scanf("%d",&n);
int i=0;
int arr[32] = {1,1};
printf("%d %d ",arr[0],arr[1]);
for(i = 2 ;i < n;i++)
{
arr[i]=arr[i-1]+arr[i-2];
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
#include<stdio.h>
int main()
{
int n=0;
printf("input:");
scanf("%d",&n);
int arr[32] = {};
int i = 0;
//arr[0] = 0;
arr[1] = 1;
for (; i < n; i++)
{
arr[i + 2] = arr[i] + arr[i + 1];
printf("%d ",arr[i]);
}
return 0;
}
用函数正序输出斐波那契数列
#include<stdio.h>
//fibibacci数列:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
int fbi(int x)
{
if( x<2)
return x==0?0:1;
return fbi(x-1)+fbi(x-2);
}
int main()
{
int n = 0;
printf("input:");
scanf("%d",&n);
int i=0;
int j;
int arr[32] = {0};
for(i =0;i<n;i++)
printf("%d ",fbi(i));
printf("\n");
return 0;
}