(c语法百题31)费波那契数列

知识点:

数组,for语句,if语句灵活运用

在for中用if控制每5个数换行一次

内容: 已知faibonacai(费波那契)数列的前几个数分别为1,1,2,3,5,8,13,……,编程求此数列的前n(n>=5)项。

输入说明:

一行一个整数n(>=5 and <=22)

输出说明:

每5格一行,不足5个的也占一行

输入样例:

输出样例 :

1 1 2 3 5

#include <stdio.h>
int main()
{
 int a[22],n,i;
 a[0]=1;
 a[1]=1;
 scanf("%d",&n);
 for (i=2;i<n;i++)
 {
  a[i]=a[i-1]+a[i-2];
 }
 for (i=0;i<n;i++)
 {
  printf("%d ",a[i]);
  if((i+1)%5==0)       //数组a[i]为第i+1个数
  {
   printf("\n");
  }
 }
 return 0;
}
时间: 2024-10-11 12:55:04

(c语法百题31)费波那契数列的相关文章

费波那契数列算法

费波那契数列算法 作者:白宁超 2016年10月27日20:06:54 斐波那契数学描述: F0 = 0     (n=0) F1 = 1    (n=1) Fn = F[n-1]+ F[n-2](n=>2) Python语言实现: 分析:当n=0时为0,n=1时为1,n>2时,最后两数之和.由此可知,链表fibs初始化0,1:列表可以当做链表使用,具有负数索引特性,采用后两位数相加追加即可. import datetime #由于斐波那契特性前两首0,1,其后各项均为之前两数之和可知,时间复

刷题9 斐波那契数列及跳台阶问题

斐波那契数列问题描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.  n<=39 关于斐波那契数列, 定义是这样的: 因为递归太浪费空间, 所以采用循环: 1 class Solution { 2 public: 3 int Fibonacci(int n) { 4 if(n < 2) 5 return n; 6 int first = 0; 7 int second = 1; 8 int sum = -1; 9 for(int i = 0; i < n

算法题4 斐波那契数列

题目: Fibonacci数列定义如下: 输入n,求f(n) 分析: 在剑指offer上有个O(logn)的算法,本文只做O(n)算法的分析.这其实是一个简单的动态规划问题,问题的结果跟子问题的结果相关,关系式已经给出了,计算中需要保存子问题的结果 跳台阶问题:一个台阶一共有n阶,一次起跳可以跳一阶,也可以跳二阶.问总共有多少中跳法,并对时间复杂度进行分析.该问题也是典型的Fibonacci数列问题,第一次跳1个台阶,接下来有f(n-1)中跳法,第一次跳2个台阶,则接下来有f(n-2)个跳法.

编程之美-快速费波拉契数列

写出来也被它的速度吓了一跳,程序最坑的地方应该就是防止溢出了. #include <stdio.h> #include <stdlib.h> #define MOD (19999997) struct matrix { unsigned long long a; unsigned long long b; //{a,b} unsigned long long c; //{c,d} unsigned long long d; }; struct matrix mul_matrix(s

用递归和非递归的方法输出斐波那契数列的第n个元素(C语言实现)

费波那契数列(意大利语:Successione di Fibonacci),又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列. 在数学上,费波那契数列是以递归的方法来定义: {\displaystyle F_{0}=0} {\displaystyle F_{1}=1} {\displaystyle F_{n}=F_{n-1}+F_{n-2}}(n≧2) 用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出.首几个费波那契系数是: 0, 1, 1, 2, 3

斐波那契数列——摘自搜狗百科

1数列公式 递推公式 斐波那契数列:0.1.1.2.3.5.8.13.21.34.55.89.144... 如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式: F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3) 通项公式 通项公式的推导方法一:利用特征方程 线性递推数列的特征方程为: X^2=X+1 解得 X1=(1+√5)/2, X2=(1-√5)/2. 斐波拉契数列则F(n)=C1*X1^n + C2*X2^n ∵F(1)=F(2

Fibonacci series(斐波纳契数列)的几种常见实现方式

费波那契数列的定义: 费波那契数列(意大利语:Successione di Fibonacci),又译费波拿契数.斐波那契数列.斐波那契数列.黄金分割数列. 在数学上,费波那契数列是以递归的方法来定义: (n≧2) 用文字来说,就是费波那契数列由0和1开始,之后的费波那契系数就由之前的两数相加. 首几个费波那契系数是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233-- 特别指出:0不是第一项,而是第零项. 下面是费波那契数列的几种常见编程实现:

对斐波那契数列的理解

在数学上,费波那契数列是以递归的方法来定义: (n≧2) 费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出. 与斐波那契数列有关的问题,都符合这样的描述: 当前状态的得出是依赖于前两项的状态,给出初始状态F(0),F(1),之后的每一项都满足共同的特点,即为前两项状态相加. 前两项的状态,分别为当前状态的两种解法,适用加法原理. 下面给出几个例题: 1.Climbing Stairs 爬楼梯问题 每次只能爬1或2步,那么爬到第n层的方法要么是从第n-1层一步上来的,要不就是

锦囊5-斐波那契数列

[程序描述] 编写一个程序,实现斐波那契数列. [程序分析] 斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--. 在数学上,费波那契数列是以递归的方法来定义: F0 = 0     (n=0) F1 = 1    (n=1) Fn = F[n-1]+ F[n-2](n=>2) [程序实现] def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib