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;
    }
    


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

  • 相关阅读:
    Eclipse中支持js提示
    数据库命名规则
    JavaWeb 命名规则
    Ajax&json
    js中,var 修饰变量名和不修饰的区别
    javaScript知识点
    Bootstrap 栅格系统
    文本框如果不输入任何内容提交过后是一个空字符串还是null
    根据汇总数量依次扣减的SQL新语法
    asp.net中使用forms验证
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4634793.html
Copyright © 2011-2022 走看看