zoukankan      html  css  js  c++  java
  • 斐波那契数

    递归算法是不可取的。由于效率非常低,并且还有栈溢出的风险。


    应该使用例如以下的迭代解法:

    int Fibonacci(unsigned int n)
    {
    	if(n <= 0)
    	{
    		return 0;
    	}
    	if(n == 1)
    	{
    		return 1;
    	}
    	int i = 0,j = 1,m;
    	unsigned int k;
    	for(k = 2; k <= n; k++)
    	{
    		m = i+j;
    		i = j;
    		j = m;
    	}
    	return m;
    }

    可是对于这题来说。上面的代码还是不行的。应该返回值用long long类型:
    题目描写叙述:

    大家都知道斐波那契数列。如今要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义例如以下:

    输入:

    输入可能包括多个測试例子,对于每一个測试案例,

    输入包含一个整数n(1<=n<=70)。

    输出:

    相应每一个測试案例。

    输出第n项斐波那契数列的值。

    例子输入:
    3
    例子输出:
    2
    /*
    斐波那契数列
    by Rowandjj
    2014/7/24
    */
    #include<stdlib.h>
    #include<stdio.h>
    long long Fibonacci(unsigned int n)
    {
    	if(n <= 0)
    	{
    		return 0;
    	}
    	if(n == 1)
    	{
    		return 1;
    	}
    	long long i = 0,j = 1,m;
    	unsigned int k;
    	for(k = 2; k <= n; k++)
    	{
    		m = i+j;
    		i = j;
    		j = m;
    	}
    	return m;
    }
    int main()
    {
    	unsigned int n;
    	while(scanf("%d",&n) != EOF)
    	{
    		printf("%lld
    ",Fibonacci(n));
    	}
    	return 0;
    }
    


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Kerberos-KDC
    samba后台进程及安全模式简介
    samba服务器详细配置(非域模式)
    windows常用net use命令
    samba常用命令
    ORA-24324、ORA-12560、ORA-12514
    oracle的启动和关闭
    Oracle 监听配置详解(转载)
    linux加入windows域之完美方案(转载)
    怎样识吉他谱
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4634793.html
Copyright © 2011-2022 走看看