zoukankan      html  css  js  c++  java
  • 斐波那契数列C 语言学习

    斐波那契(Fabonacci)序列起源于中世纪的意大利,问题是这样给出的:假定每对兔子每个月生出新的一对兔子来新的每对兔子过两个月就可以生育。其次,这些兔子都不死,这样第一个月有一对兔子,第二个月有两对兔子,第三个月有三对兔子(第一个月的一对兔子又生了一对),第四个月有五对兔子(第二个月已有的两对兔子又各生了一对),以此类推,问一年共有多少对兔子。

    可以把这个问题抽象一下:一般每个月的兔子数为上个月已有的兔子(因为兔子不死)和上上个月已有兔子新生的兔子(兔子两个月后就可以生育)之和,也就是说,序列中的某一项等于前两项之和(虽然一开始不成立)。

    于是乎得到了所谓的斐波那契序列,它定义为:

    数列定义

    就是说:从第三项起每项都是前两项的和。

    在下面的算法里,把第一项看作了 0,这样就更符合数学上的“斐波那契”数列了:

    1,使用递归方法:

    int Fabonacci(int n)
    {
    	if(n <= 2)
    		return n - 1;
    	else
    		return (Fabonacci(n - 1) + Fabonacci(n - 2));
    }

    2,使用 for 循环,输出了前 n 个斐波那契数列:

    int _Fabonacci(int n)//输出前 n 个数
    {
    	int i, a, b, c;
    	a = 0;
    	b = 1;
    	printf("%10d%10d", a, b);/*输出前两个数*/
    	for(i = 3; i <= n; i ++)
    	{
    		c = a + b;
    		printf("%10d", c);
    		if(i % 5 == 0)
    			printf("\n");/*每行输出 5 个*/
    		a = b;
    		b = c;/*项移动*/
    	}
    	printf("\n");
    }
  • 相关阅读:
    android 2.3 bug android 4.x bug
    设计高性能CSS3动画的几个要素
    开启硬件加速 解决页面闪白 保证动画流畅
    取消input在ios下,输入的时候英文首字母的默认大写 android 上去掉语音输入按钮
    JS中的类型检测
    CSS的一点知识
    HTML Canvas
    HTML DOM Table 对象
    只是有所了解的语言
    骑士巡游问题
  • 原文地址:https://www.cnblogs.com/catprayer/p/1854610.html
Copyright © 2011-2022 走看看