zoukankan      html  css  js  c++  java
  • 【剑指offer】斐波那契序列与跳台阶

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25337983


        剑指offer上的第9题,简单题,在九度OJ上測试通过。

        主要注意下面几点:

        1、用非递归实现,递归会超时

        2、结果要用long long保存,不然会发生结果的溢出。从而得到负值

        3、假设是在VC++6.0下编译的,long long是illegal的,要用_int64取代。同一时候输出的转化以字符也要用%I64d取代%lld


    时间限制:1 秒

    内存限制:32 兆

    题目描写叙述:

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

    输入:

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

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

    输出:

    相应每一个測试案例。

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

    例子输入:
    3
    例子输出:
    2

        AC代码:

    #include<stdio.h>
    
    long long Fibonacci(unsigned int n)
    {
    	if(n <= 0)
    		return 0;
    	if(n == 1)
    		return 1;
    	long long fib1 = 0;
    	long long fib2 = 1;
    	long long FibN = 0;
    	unsigned int i;
    	for(i=2;i<=n;i++)
    	{
    		FibN = fib1 + fib2;
    		fib1 = fib2;
    		fib2 = FibN;
    	}
    	return FibN;
    }
    
    int main()
    {
    	unsigned int n;
    	while(scanf("%d",&n) != EOF)
    		printf("%lld
    ",Fibonacci(n));
    	return 0;
    }

    /**************************************************************
        Problem: 1387
        User: mmc_maodun
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/

        延伸:一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级。求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。

        思路:

        首先假设仅仅有1个台阶,则仅仅有1种跳法;

        假设有2个台阶,则有2种跳法:1-1,2。

        假设有3个台阶。则有3种跳法:1-2。2-1,1-1-1;

        ......

        假设如今有n个台阶,我们假设有f(n)种跳法,我们往前看最后一跳的情况。显然之后两种情况:跳1个台阶和跳2个台阶。

    假设最后一次跳是跳了1个台阶,则前面n-1个台阶有f(n-1)种跳法,假设最后一跳时跳了2个台阶。则前面n-2个台阶有f(n-2)中跳法。因此。假设n>2,则f(n) = f(n-1) + f(n-2),这便用到了斐波那契序列,仅仅是这里的初始条件是f(1) = 1,f(2) = 2。

    程序同上面的相似,这里不再给出!


  • 相关阅读:
    SSM环境搭建
    spring 开发 Tars
    Tars --- Hello World
    Java IO流
    Java集合
    常用类
    Pwn With longjmp
    格式化字符串漏洞利用实战之 njctf-decoder
    一步一步 Pwn RouterOS之ctf题练手
    srop实战
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6854040.html
Copyright © 2011-2022 走看看