【0002】斐波那契数列,迷宫,汉诺塔

001、斐波那契数列

/*
    斐波那契数列:f(n)=f(n-1)+f(n-2);其中f(1)=f(2)=1;
*/

#include <stdio.h>
#include <stdlib.h>


/*
    斐波那契数列:f(n)=f(n-1)+f(n-2);其中f(1)=f(2)=1;
*/
int Fibonacci(int n)
{
    if (n == 1 || n == 2)
        return 1;
    else
        return Fibonacci(n - 1) + Fibonacci(n - 2);
}

void main()
{
    printf("%d \n", Fibonacci(40));        // 102334155 ,递归调用    5s     (利用内存的堆栈)

    system("pause");
}    
递归法
#include <stdio.h>
#include <stdlib.h>


void main()
{
    int a[40] = { 0 };
    a[0] = 1;
    a[1] = 1;

    for (int i = 2; i < 40; i++)
    {
        a[i] = a[i - 1] + a[i - 2];
    }

    printf("%d \n", a[39]);

    system("pause");
}
数组存储的方式叠加
#include <stdio.h>
#include <stdlib.h>


void main()
{
    int f1 = 1, f2 = 1, f3;                // 与数组类似 0s
    for (int i = 1; i < 40 - 1; i++)
    {
        f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
        printf("%-10d ", f3);
        if (i % 5 == 0)
            puts("\n");
    }*/

    system("pause");
}
类数组的方式叠加

 

002、迷宫

 

 

003、汉诺塔

 

posted @ 2020-07-18 09:28  ant_colonies  阅读(180)  评论(0编辑  收藏  举报