C语言好题解析(二)
目录
- 递归类型
- 例题1
- 例题2
- 例题3
- 例题4
- 例题5
- 例题6
递归类型
例题1
根据下面递归函数:调用函数Fun(2),返回值是多少( )
int Fun(int n)
{if (n == 5)return 2;elsereturn 2 * Fun(n + 1);
}
A.2 B.4 C.8 D.16
【答案】 D
【分析】
1:递归解题思路就是要注意递归的限制条件,满足限制条件时递归就不再继续,且每次递归调用之后都会接近这个限制条件
2:由题目我们可以知道限制条件为n==5,当我们输入比5小的数时,n是以每次增加1的趋势接近限制条件
流程如下(第一次用画图软件,画的不是很好看)

例题2
通过用递归的方式实现求第n个斐波那契数
例如
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1
【分析】
1:斐波那契数定义为:jack(0)=0,jack(1)=1,jack(n)=jack(n-1)+jack(n-2)(n>=2),总之就是第n个数为n的前两个数相加的和
2:我们根据斐波那契数的定义知jack(1)=1,jack(2)=1,因为jack(0)=0所以不管,因此我们设定条件n=1和n=2时返回1(限制条件),而当n>=2是返回jack(n-1)+jack(n-2)实现递归(趋近于限制条件)
【代码】
int jack(int n)
{if (1 == n || 2 == n){return 1;}else{return jack(n - 1) + jack(n - 2);}
}
int main()
{int n = 0;scanf("%d", &n);printf("%d", jack(n));return 0;
}
例题3
编写一个函数实现n的k次方,使用递归实现
【分析】
1:根据递归我们需要限制条件,因为n在输入之后就无法改变,因此我们需要对k进行设置,即0==k时我们返回1。
2:当k大于0时我们为了让其趋近于限制条件,因此k每次递推后就需要减1
【代码】
int jack(int n, int k)
{int sum = 0;if (0 == k){sum = 1;return sum;}else if (k > 0){k = k--;sum = n * jack(n, k);return sum;}elsereturn 0;
}
int main()
{int n, k;scanf("%d %d", &n, &k);printf("%d ",jack(n, k));return 0;
}
例题4
写一个递归函数DigitSum(n),输入一个非负整数
返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9
它的和是19
输入:1729,输出:19
【分析】
1:在看到返回值为个位 十位 百位…数字时,我们一般都会用到求余(%),这样就可以将每位数单独提出来
2:因为是要用到递归,因此我们需要限制条件,即当n<10时直接返回n(个位数),而要有使递推趋近限制条件就需要用/号,这样就会把最后一位数消去
【代码】
int jack(int n)
{if (n < 10)return n;else{int sum = n % 10 + jack(n / 10);return sum;}
}
int main()
{int n = 0;scanf("%d", &n);printf("%d", jack(n));return 0;
}
例题5
递归实现求n的阶乘(不考虑溢出的问题)
【分析】
我们以n==1返回1作为限制条件,然后每次n减1
【代码】
int jack(int n)
{int sum = 0;if (n > 1){sum = n * jack(n - 1);return sum;}if (1 == n){sum = 1;return sum;}
}
int main()
{int n = 0;scanf("%d", &n);printf("%d", jack(n));return 0;
}
我们对前面的代码进行一些优化如下
【代码】
int jack(int n)
{
if(n==1)
return 1;
return n*jack(n-1);
}
int main()
{int n = 0;scanf("%d", &n);printf("%d", jack(n));return 0;
}
例题6
递归方式实现打印一个整数的每一位
【分析】
这道题和例题4几乎一样,所以就不进行分析了
【代码】
void jack(int n)
{if (n >= 0){if (n <= 9){printf("%d ", n);}else{int sum = 0;sum= n % 10;jack(n / 10);printf("%d " ,sum);}}
}
int main()
{int n = 0;scanf("%d", &n);jack(n);return 0;
}
相关文章:
C语言好题解析(二)
目录 递归类型例题1例题2例题3例题4例题5例题6 递归类型 例题1 根据下面递归函数:调用函数Fun(2),返回值是多少( )int Fun(int n) {if (n 5)return 2;elsereturn 2 * Fun(n 1); } A.2 B.4 C.8 D.16【答案】 D 【分析】 …...
数据结构介绍
1、什么是数据结构呢? 计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。数据结构是为了更方便的管理和使用数据,需要结合具体的业务来进行选择。一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率。…...
Kafka基础及常见面试题
1. 用途 1. 流量削峰 2. 流计算 2. Kafka的核心组件 在Kafka中,Producer、Broker和Consumer是三个关键的角色,它们在整个消息传递过程中扮演不同的角色和功能:1. **Producer(生产者)**:生产者是消息的发…...
基于Java的ssm图书管理系统源码和论文
基于Java的ssm图书管理系统036 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,计算机被广泛应用于信息管理系统的环境。计算机的最大好…...
2020年9月全国计算机等级考试真题(C语言二级)
2020年9月全国计算机等级考试真题(C语言二级) 第1题 有下列程序: #include<stdio.h> main() { FILE*fp;int k,n,a[6]{1,2,3,4,5,6}; fpfopen("d2.dat","w"); fprintf(fp,"%d%d%d\n",a[0],…...
【rust/egui】(一)从编译运行template开始
说在前面 rust新手,egui没啥找到啥教程,这里自己记录下学习过程环境:windows11 22H2rust版本:rustc 1.71.1egui版本:0.22.0eframe版本:0.22.0rust windows安装参考:这里本文默认读者已安装相关环…...
VMware虚拟安装Ubuntu,然后切换Ubuntu内核版本
无论你选择哪种方法,一旦进入 GRUB 引导菜单,你应该能够选择需要的内核版本并启动系统。 打开终端:你可以通过按下 Ctrl Alt T 快捷键来打开终端。 使用 sudo:切换内核需要管理员权限,因此你需要使用 sudo 命令。首…...
爆肝整理,Python自动化测试-Pytest参数化实战封装,一篇打通...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 参数化࿱…...
西门子AI面试问答(STAR法则回答实例)
0.试题情况 0.未来三到五年的职业规划(不计入成绩,测试用); 1.一些基本问题,目前所在城市目标薪资意向工作城市(手动输入,非视频录制); 2.宝洁8大问的问题1个英文回答…...
中间平台工具 - graylog
graylog是非常好用的数据处理平台,可以对数据进行:streams分类、pipeline、正则匹配、统计汇总、定制化配置Alerts 等处理。 graylog的一些概念: 索引(消息存储的位置,默认indices default) streams(从inputs里面,通…...
VectorStyler for Mac: 让你的创意无限绽放的全新设计工具
VectorStyler for Mac是一款专为Mac用户打造的矢量设计工具,它结合了功能强大的矢量编辑器和创意无限的样式编辑器,让你的创意无限绽放。 VectorStyler for Mac拥有直观简洁的用户界面,让你能够轻松上手。它提供了丰富的矢量绘图工具&#x…...
轻松转换TS视频为MP4,实现优质视频剪辑体验
如果你是一个视频剪辑爱好者,你一定会遇到各种视频格式之间的转换问题,特别是将TS视频转换为MP4格式。别担心,我们的视频剪辑软件将为你提供最简单、高效的解决方案! 首先第一步,我们要进入媒体梦工厂主页面ÿ…...
IDEA关闭项目,但是后台程序没有关闭进程(解决方案)
最近遇到一个很奇怪的问题,idea关闭项目后,系统进程没有杀死进程,再次执行的时候会提示端口占用,并提示Process exited with an error: 1 (Exit value: 1) 错误原因:应用程序关闭后,进程不能同步关闭 解决方…...
github拉取自己的私有仓库(Token方式、本地秘钥方式)
github拉取自己的私有仓库(Token方式、本地秘钥方式) 问题背景 日常开发和学习过程中,经常碰到需要从GitHub或者其他类似网站,拉取私有仓代码的需求。本文将总结常用的两种方式,Token方式和本地秘钥方式,方便后续查阅和优化。 …...
聊聊非科班转IT
我这算是妥妥的非科班转计算机的了,先介绍下自己的情况吧。 14年大专毕业,学的汽车运用专业。(什么?你说啥是汽车运用专业?那机械设计总知道吧,这个专业接本后就是机械设计了。) 毕业后服役&…...
NET域名的优势
NET域名是互联网上最常见的顶级域名之一,其开放使用日期远比其他主要顶级域名早,始于1985年。其作为商业网络服务提供者的域名,主要用于企业、组织和个人等在网络上建立自己的网站。本文将从以下三个方面介绍NET域名。 一、NET域名的历史 N…...
ZLMediaKit推流测试
推流测试 ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流测试,其中FFmpeg推流命令支持以下: 1、使用rtsp方式推流 # h264推流 ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transp…...
高防服务器的防御机制
高防服务器的防御机制 易受到GJ的网站选择接入高防服务更安全,大家对于这个都清楚!但是对于高防服务如何实现防御来保障安全的,又了解多少呢?今天壹基比小源(贰伍壹叁壹叁壹贰玖捌)就来说说高防服务实现防御的常规方法一般有以下…...
【PySide】QtWebEngine网页浏览器打开Flash网页
QWebEngineView 加载 flash插件,可成功显示Flash,如图 说明 QtWebEngine与Chromium版本对应关系 Chromium对Flash的支持 QtWebEngine模块 Qt WebEngine取代了Qt WebKit模块,后者基于WebKit项目,但自Qt 5.2以来没有主动与上游WebKit代码同步,并且在Qt 5.5中已被弃用。有…...
【力扣每日一题】1572. 矩阵对角线元素的和 8.11打卡
文章目录 题目思路代码 题目 1572. 矩阵对角线元素的和 难度: 简单 描述: 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 返回合并后的二叉树。 注意…...
3大创新让OpenRocket成为开源工程工具的典范:从问题到实践的完整指南
3大创新让OpenRocket成为开源工程工具的典范:从问题到实践的完整指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket OpenRocket是一款基于Jav…...
CasADi实战:用Python搞定机器人路径规划中的数值优化问题(附IPOPT配置)
CasADi实战:用Python搞定机器人路径规划中的数值优化问题(附IPOPT配置) 机器人路径规划的核心在于如何在复杂环境中找到一条既安全又高效的轨迹。这本质上是一个带约束的数值优化问题——我们需要最小化某种代价函数(如路径长度或…...
MedGemma-X精彩案例分享:自然语言提问触发的专业级影像分析报告
MedGemma-X精彩案例分享:自然语言提问触发的专业级影像分析报告 1. 重新定义智能影像诊断的新标杆 想象一下这样的场景:一位放射科医生面对堆积如山的X光片,只需要用自然语言问一句"这张胸片有没有肺炎迹象?"…...
DeepSeek-OCR-2效果展示:OCR结果直接生成可编辑Word/PDF双格式
DeepSeek-OCR-2效果展示:OCR结果直接生成可编辑Word/PDF双格式 本文展示DeepSeek-OCR-2模型的强大OCR能力,重点演示如何将扫描文档直接转换为可编辑的Word和PDF格式,让文档数字化变得简单高效。 1. 核心能力概览 DeepSeek-OCR-2是2026年1月发…...
intv_ai_mk11行业落地:教育机构课件辅助生成、HR招聘文案批量产出案例
intv_ai_mk11行业落地:教育机构课件辅助生成、HR招聘文案批量产出案例 1. 模型能力与行业价值 intv_ai_mk11作为一款基于Llama架构的文本生成模型,在教育培训和人力资源领域展现出独特的实用价值。这个开箱即用的解决方案特别适合需要快速处理大量文本…...
终极Win11Debloat优化指南:简单4步让你的Windows 11飞起来
终极Win11Debloat优化指南:简单4步让你的Windows 11飞起来 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...
开源字体实用指南:Poppins字体家族的全方位应用策略
开源字体实用指南:Poppins字体家族的全方位应用策略 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 价值定位:如何让开源字体成为项目的视觉资产&#x…...
Mermaid Live Editor:代码驱动图表设计的终极解决方案
Mermaid Live Editor:代码驱动图表设计的终极解决方案 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor…...
GLM-Image技术验证:长宽比对构图影响实测数据
GLM-Image技术验证:长宽比对构图影响实测数据 1. 项目背景介绍 GLM-Image是由智谱AI开发的先进文本到图像生成模型,提供了一个美观易用的Web交互界面。这个界面基于Gradio构建,让用户能够轻松使用GLM-Image模型生成高质量的AI图像。 在实际…...
DanKoe 视频笔记:创作者指南:如何摆脱新手地狱
在本教程中,我们将学习创作者如何突破最初的停滞期,即所谓的“新手地狱”。我们将探讨导致这一困境的核心原因,并提供一系列具体、可操作的策略,帮助你建立权威、创作吸引人的内容、有效建立网络,并最终构建可持续的个…...
