Day 10 递归函数

 

#include <stdio.h>

 

long func(int);                 //func函数调用

 

int main()

{

    int n;                     //调用实参

    scanf("%d",&n);

    printf("%d=%ld",n,func(n));

   

    return 0;

}

 

long func(int n)              //调用形参

{

    if (1==n)

    return 1;

    if (2==n)

    return 2;

    return func(n-2)+func(n-1);         

 

}

 

已知斐波那契函数1,2,3,5,8…n-1,n得到分段函数n=1时为1;n=2时为2;n>2时为(n-1)+(n-2);

同理若求8的n次方时分段函数n=0时为1;n>1时为8*8^(n-1);此时return 8*func(n-1);

 

 

若求x的n次方

#include <stdio.h>

long func(int x,int n);

 

 

 

int main()

{

    int x,n;

    scanf("%d %d",&x,&n);

    printf("%d^%d=%ld\n",x,n,func(x,n));

    return 0;

}

 

long func(int x,int n)

{

    if (n==0)

        return 1;

    return x*func(x,n-1);

}

 

在8的n次方基础上增加一个未知数,需要注意的是由于实参形参一一对应,func函数内部也需要改为func(x,n-1)

猜你喜欢

转载自blog.csdn.net/j_xianyu/article/details/81228090
今日推荐