int fun(int x){int p;if(x == 0 || x==1) return p=3;else p = x-fun(x-2);}void main(){printf(“%d\n“)}
文章目录
- 1、题目
- 2、知识点
- 3、要做好的功课
- 4、开始解题
1、题目
2、知识点
- 函数调用
3、要做好的功课
这就是一个 完整的函数
随后,这块部分是函数体。当有地方调用(可以理解为使用)到 fun这个函数的时候,下面圈起来的这部分代码都会执行,范围在第一个左括号到最后一个右括号。
好,那么理解了这个过程后,我们就开始解题了!
4、开始解题
下图红线圈住的这行代码调用了 fun(7)这个函数。
第1次计算:
上图把7传入到了 fun函数中,此时x =7
X=7,经过 if else判断
会执行
else p = x-fun(x-2) = else p = 7 - fun(7-2)
经过上面的第一次计算fun(7-2)=fun(5),它调用了自身,此时x = 5
第2次计算:
else p = 5-fun(5-2) => p = 5-fun(3)
又调用自身的 fun函数,此时:x=3
第3次计算:
else p = 3-fun(3-2) => p =3-fun(1)
又调用自身的 fun函数,此时:x=1
第4次计算:
此时注意,if(x==0||x==1)
,|| 的意思是说,左边或者右边只要有一个条件是成立的就执行if代码,如果左右两边都不成立,就执行else代码
带入 x=1,此时 1==1,成立
执行: return p = 3。
int fun(int x){int p;if(x == 0 || x==1) return p=3;else p = x-fun(x-2);}void main(){printf(“%d\n“)}相关推荐
- void main 和 int main的区别
main是一切(控制台)程序都必须有的一个入口函数 main函数是否有返回值在绝大多数情况下无关紧要 因为main函数体内的代码一旦运行完毕 这个程序就结束了 int main() 主函数返回的值是0 ...
- int main()和void main()
void main 和 int main的区别就是有无返回值. 在int main 可以出现非 int 类型的东西.在写代码时,一个函数要么有返回值,要么没有返回值没有返回值就用void来表示. ma ...
- 下列程序的运行结果是 #include <stdio.h> void main() { int x = 10, y = 20, z = 30;
1.直接运行程序得出结果 #include <stdio.h>void main() {int x = 10, y = 20, z = 30;printf("%d %d %d % ...
- 关于int*p=a与int*p;p=a的解惑
在学习c语言解惑中遇到这个问题,其中对int *p=&a的写法百思不得其解,查了网上资料得出 这样的理解是错误的 正确理解是 一般来说*p=&a的表示方法是错的,*p=a和p=& ...
- const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系
前言:很多人都把const int * .int * const.int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性 弄不 清楚,今天特意总结一下,作为学习 ...
- int * * a[10] int * (*a)[10]和 int(*a[10])() 是什么意思
int* (*a)[10]; a是一个指向包含10个int型指针元素的数组. 比如: #include <stdio.h>int main() {// 定义数组,包含10个int*int* ...
- C++中int *p[4]和 int (*q)[4]的区别
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
- mysql int(3)_MySQL中int(11)与int(3)的区别_MySQL
11.2. 数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER.SMALLINT.DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT.RE ...
- int CWnd::GetWindowTextW(LPTSTR,int) const”: 不能将参数 1 从“char [10]”转换为“LPTSTR”
问题描述: [cpp] view plaincopy //定义了三个编辑框控件 接受num1 num2 num3 void CTestDlg::OnBnClickedButton1() //响应按 ...
- c语言int转换成float,int怎么转化为float 将 int型变量n转换成float型变量的方法是...
请问C语言中如何将int转换为float 将 int型变量n转换成float型变量的方法是 A float n B (float )n C float( n) D( float) ( n)不懂小编的人 ...
最新文章
- es的分片和副本_Elasticsearch 集群分配多少分片合理
- 《强化学习周刊》第34期:牛津、谷歌、Facebook等 | 自动强化学习 (AutoRL):研究综述和开放性问题...
- 计算机组成与结构第二章ppt,计算机组成原理(华科版)第二章 运算方法与运算器.ppt...
- jquery:validate的例子{转载}
- Ubuntu下搜狗输入法突然无法输入中文
- 【博客项目】—项目坏境搭建(一)
- android prgoressBar setProgressDrawable 在4.0系统式正常,在2.3系统上不能正常使用的问题...
- 深度学习笔记_基本概念_梯度下降及示例代码
- C笔记 -- 一个为 IT人士打造的笔记工具
- 第一个 DCMTK 程序:显示 DICOM 图像(DCMTK 3.6.4 + Qt 5.14.2 + VS2015)
- 从写博到出书:过程全记录
- 计算机学院毕业设计题库,计算机信息工程学院毕业设计课题审题表
- 【SDOI2015】临行前的夜
- arcgis10之获取面要素四至点坐标
- spring-boot2 + vue2+element-ui + avue + uni-app (兮家开源商城)
- 10.自动代理AutoProxy
- 【简单远程控制】 Metasploit应用
- 迁移服务器和切换域名
- 我的awk常用命令备忘 xargs备忘
- 波兰式与逆波兰式的转换和表达式求值
热门文章
- jQuery实现倒计时重新发送短信验证码功能示例
- 一步一步理解拖拽Drag(四)
- SQL重复记录处理(查找,过滤,删除)
- openmv探索_4_AprilTag标记追踪
- ERROR: function group_concat(character varying) does not exist
- mysql 之根据日期(时间)过滤数据
- 【福利】本人自学深度学习的300G的学习资料愿与大家分享!一起进步!
- 【干货】如何打造高质量的NLP数据集
- 逼疯一个程序员有多简单?
- 【开学福利】13本python+AI书籍,快拿去