第5-7章项目-递归函数

题目地址:贺老师C语言进阶练习题

问题1:

递归形式表达:

        


代码:

/*
Copyright(c)2018,CSDN学院行者-
All rights reserved.
文件名称:main.c
作者:乔帅
完成日期:2018年4月12日
版本号:v1.0

问题描述:递归函数
输入描述:无
程序操作:进行递归操作
程序输出:输出操作后的结果
*/
#include <stdio.h>
#define count 10
int sum(int);
int main(){
    int re;
    re = sum(count);
    printf("%d的立方累加和为:%d\n",count,re);
    return 0;
}
int sum(int n){
    int s=0;
    if(n>0){
        s = (n*n*n) + sum(n-1);
    }
    return s;
}

运行结果:



问题2:

递归形式表达:

            

代码:

#include <stdio.h>
#define count 10
int sum(int);
int main(){
    int re;
    re = sum(count);
    printf("%d\n",re);
    return 0;
}
int sum(int n){
    int s=1;
    if(n>0){
        s = n * sum(n-2);
    }
    return s;
}

运行结果:

问题3:

代码:

#include<stdio.h>
int sum(int,int);
int main(){
    int a,b,re;
    printf("input two number:");
    scanf("%d %d",&a,&b);
    re = sum(a,b);
    printf("two number %d and %d greatest common divisor:%d",a,b,re);
    return 0;
}
int sum(int a , int b){
    int re , t;
    if(a<b){
        t = a;
        a = b;
        b = t;
    }
    if(b == 0){
        re = a;
    }else{
        re = sum(b,a%b);
    }
    return re;
}

运行结果:

问题4:

代码:

#include<stdio.h>
int find(int a[],int n){
    int m;
    if(n==0){
        return a[0];
    }else{
        m = find(a,n-1);
        return (m>a[n]?m:a[n]);
    }
}
int main(){
    int s[5],i;
    for(i = 0 ; i < 5 ; i++){
        scanf("%d",&s[i]);
    }
    printf("%d",find(s,4));
    return 0;
}

运行结果:

总结:递归是我们需要掌握的一种思想,递归可以用来解决与以上问题相类似的一系列问题,因此我们要熟练掌握这种思想,并且多加练习!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值