C语言_函数_例子

来源:互联网 发布:互动百科排名优化 编辑:程序博客网 时间:2024/05/22 17:17

#include<stdio.h>

//阶乘

long factorial(int x);

//函数的递归

long factorialSecond(int x);

//宏定义

#define Square(x) x+x

//斐波那契数列

int feiboshulei(int x);

int main()

{

      

//    int x_1;

//    printf("输入一个整数:");

//    scanf("%d",&x_1);

//    long xx=factorial(x_1);

//    printf("%ld\n",xx);

    

    printf("输入:");

    int x_3;

    scanf("%d",&x_3);

    for (int i=1; i<=x_3; i++) 

   {

        printf("%d ",feiboshulei(i));

    }

return 0;

}

//函数递归

/*

   n!=n*(n-1)!;

   5!=5*f(4);

   5!=5*4*f(3);

   5!=5*4*3*f(2);

   5!=5*4*3*2*f(1);

   f(1)=1;

   往回推出f(5);

 */

/*使用递归,体贴开销比较大,所有尽量使用迭代的办法*/

long factorialSecond(int x)

{

    if (x==1)

    {

        return1;

    }

    else

    {

        return x*factorialSecond(x-1);

    }

}

int  feiboshulei(int x)

{

    int i_1=0,i_2=1,sum,i=2;

    //迭代方法

    /*

    if(x==1)

    {

        return 0;

    }

    if (x==2)

    {

        return 1;

    }

    while(i<x)

    {

        sum=i_1+i_2;

        i_1=i_2;

        i_2=sum;

        i++;

    }

    return sum;

     */

//递归方法

    if(x==1)

    {

        return0;

    }

    if (x==2)

    {

        return1;

    }

    return  feiboshulei(x-1)+feiboshulei(x-2);

}


0 0
原创粉丝点击