C语言函数练习题、递归

/**
 * File Name: test.c
 * Author: Haoxuan
 * Mail: haovxuan@126.com
 * Created Time: 2020年12月23日 星期三 13时45分02秒
 **/
#include 
/**
 * 利用递归求N的阶乘
 */
double getJiecheng(double n)
{
    if(n<0)
        return -1;
    if(n==0||n==1)
        return 1;
    return n*getJiecheng(n-1);
}
/**
 *利用递归求fibonacci中第n项
 */
int fibonacci(int n)
{
    if(n<0)
        return -1;
    if(n==1||n==2)
        return 1;
    return fibonacci(n-2)+fibonacci(n-1);

}
/**
 * 将数组中N个整数按相反顺序存放,利用函数实现逆序
 */
void getReverse(int arr[],int n)
{
   int temp[n];

 for(int i=0;i<n;i++)
 {
   temp[i]=arr[n-i-1];
 }
 for(int i=0;i<n;i++)
     printf("%d ",temp[i]);
 printf("\n");
}
/**
 * 调用阶乘函数
 */
void run1()
{
    printf("你想知道谁的阶乘?");
    double  num;
    scanf("%lf",&num);
    printf("%.0lf\n",getJiecheng(num));
}
/**
 * 调用fibonacci函数
 */
void run2()
{
    printf("你想知道第几位的斐波那契值?");
    int num;
    scanf("%d",&num);
    printf("%d\n",fibonacci(num));
}

void run3()
{
    int arr[]={1,2,3,4,5,6,7,8};
    int temp[sizeof(arr)/sizeof(arr[0])];
  getReverse(arr,sizeof(arr)/sizeof(arr[0]));
}

int main()
{
    //run1();
    //run2();
    run3();
    return 0;
}

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容