千家信息网

C语言递归在实践题目中如何应用

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,本篇内容主要讲解"C语言递归在实践题目中如何应用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C语言递归在实践题目中如何应用"吧!递归知识点递归概念:程序
千家信息网最后更新 2024年11月22日C语言递归在实践题目中如何应用

本篇内容主要讲解"C语言递归在实践题目中如何应用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C语言递归在实践题目中如何应用"吧!

递归知识点

递归概念:程序调用自身的编程技巧称为递归( recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解, 递归策略 只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

通俗理解就是:函数自己调用自己

递归的主要思考方式就是大事化小

递归的两个必要条件

1.存在限制条件,当满足这个限制条件的时候,递归便不再继续

2.每次递归调用之后越来越接近这个限制条件

(满足以上必要条件的不一定是递归,但不满足条件的一定不是递归)

题目

第一题

接收一个整型数值,按照顺序打印它的每一位

输入:1234 输出:1 2 3 4

来看看函数内部:

#include void print(int n){        if (n > 9)        {                print(n / 10);        }        printf("%d ", n % 10);}int main(){        int n = 0;        scanf("%d", &n);        print(n);        return 0;}

第二题

求 n 的阶乘

进入函数内部:

#include int factorial(int n){        if (n <= 1)                return 1;        else                return n * factorial(n - 1);}int main(){        int n = 0;        scanf("%d", &n);        int ret = factorial(n);        printf("%d\n", ret);        return 0;}

第三题

用递归的方法求字符串长度

#include int my_strlen(char* str){        if (*str == '\0')                return 0;        else                return 1 + my_strlen(str + 1);}int main(){        char arr[] = "hello";        int ret = my_strlen(arr);        printf("%d\n", ret);        return 0;}

第四题

用递归求第n个斐波那契数(不考虑溢出)

进入函数内部:

#include int Fib(int n){        if (n <= 2)                return 1;        else                return Fib(n - 1) + Fib(n - 2);}int main(){        int n = 0;        scanf("%d", &n);        int ret = Fib(n);        printf("%d\n", ret);        return 0;}

第五题

进入函数内部:

#include int Dig(int n){        if (n > 9)                return Dig(n / 10) + n % 10;        else                return n;}int main(){        int n = 0;        scanf("%d", &n);        int ret = Dig(n);        printf("%d\n", ret);        return 0;}

第六题

用递归实现 n 的 k 次方

进入函数内部:

#include double Pow(int n, int k){        if (k > 0)                return n * Pow(n, k - 1);        else if (k == 0)                return 1;        else                return 1.0 / Pow(n, -k);}int main(){        int n = 0;        int k = 0;        scanf("%d %d", &n, &k);        double ret = Pow(n, k);        printf("%lf\n", ret);        return 0;}

第七题

小乐乐上课需要走 n 阶台阶,

所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?

进入函数内部:

#include int jump(int n){        if (n <= 2)                return n;        else                return jump(n - 1) + jump(n - 2);}int main(){        int n = 0;        scanf("%d", &n);        int ret=jump(n);        printf("%d\n", ret);        return 0;}

到此,相信大家对"C语言递归在实践题目中如何应用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

递归 函数 条件 语言 题目 应用 程序 实践 方法 问题 限制 必要 必要条件 内容 就是 过程 学习 复杂 更深 相似 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 武清区智能软件开发供应 我的世界网易服务器怎么加特殊符号 网络安全的主体包括 网络安全手册ppt mc开源服务器 简单服务器管理方法 部分阅读是什么意思读秀数据库 连接数据库代码文件在哪里 网络安全教给孩子 青岛福莱软件开发 vba自动提取股票数据库 北京华腾云网网络技术有限公司 数据库窗体颜色怎么改 软件开发过程中使用的工具 济南打车用什么软件开发 多数据源的c 数据库连接池 斐思妮系统软件开发 发生网络安全问题如何处理 计算机网络技术服务及咨询 如何快速汇总多个表格数据库 汉阳区方便网络安全维护代理品牌 什么是互联网金融科技公司 央企软件开发工资标准 王者荣耀软件开发者的经历 苹果无法验证服务器身份证书过期 2021公安招聘网络安全人员 node 遍历查询数据库 网络安全的基本属性范围是 华为路由器服务器web端口映射 西安雁塔区软件开发企业招聘
0