社区
C语言
帖子详情
关于递归的
OpenOffice_org
2005-04-23 11:50:09
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6); }
这种函数的递归调用我看不懂,到底输出的X值为多秒?
请指教,谢谢
...全文
157
6
打赏
收藏
关于递归的
fun(int x) { if(x/2>0) fun(x/2); printf("%d ",x); } main() { fun(6); } 这种函数的递归调用我看不懂,到底输出的X值为多秒? 请指教,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
llf_hust
2005-04-24
打赏
举报
回复
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6); }
这种函数的递归调用我看不懂,到底输出的X值为多秒?
1. 6/2 ====>3 >0
fun(3/2)====>1>0
fun(1/2)====> 不大于0
输出 1 3 6
blackmouth
2005-04-24
打赏
举报
回复
fun(int x)
{
if(x/2>0) fun(x/2);
printf("%d ",x);
}
main()
{ fun(6); }
整数除法中1/2=0,3/2=1
所以x的值在传递过程中为6 3 1
当x=1时x/2>0不成立,结束递归,打印x
nanr_1122
2005-04-24
打赏
举报
回复
我这有问题 请教~~~~~`
很简单的两个函数:
long ract(int n) // 阶乘问题( n!)
{
if(n<0)
{printf("异常");
exit(-1);
}
else if(n<=1)
return(1);
else
return( n*ract(n-1) );// 调用自己;
}//结束;
经典 hanoi 问题;
void hanoi ( int n, char a, char b ,char c)
{ if(n>0)
{
hanoi(n-1,a,c,b);
printf("\n move disc %d from pile %c to %c",n,a,b);
hanoi (n-1,c,b,a);
}
}// end
我想请教的是 拿到问题时, 我想从 问题的 n 用 n-1 来设计过程不是太难;
终结条件也可以考虑, 但是如果从整体的实现过程 来考虑 可就麻烦拉~
就是对函数的每一层保存,每一层调用, 从底部 的回传数据```````
就晕到这拉~~~ 我看到过曾经数据结构上说, 尽量不要模拟全部过程,只要将n-1问题想成肯定能完成就行,调用便行;
如上 要是 hanoi 问题 , 我就可以不想那么多, 因为不用从最后向上一层一层传数据,可是 第一个 阶乘 (n!) 问题, 我觉得我总 得 大体想想数据的回传过程, 要不老觉得不放心,~~~ 可这样老是觉得很困难~```
向各位请教 , 有没有什么好方法或经验, 可以较快较好的 解决, 有什么好的思路
望各位不吝赐教~~~~~~
nanr_1122
2005-04-24
打赏
举报
回复
aA
delhe
2005-04-24
打赏
举报
回复
第一题 输出结果为 1 3 6
第二题是 B没错,因为s加了c次,而循环后b == c+1 ,又有a == s, 所以s == a + c
OpenOffice_org
2005-04-23
打赏
举报
回复
(22)若有如下程序段,其中s、a、
0)
b、c均已定义为整型变量,且a、c均已赋值(c大于
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句
是
A)s=a+b; B)s=a+c; C)s=s+c; D) s=b+c;
顺便请教一下,这道题应该选几?我选A为什么会错?题目给出的答案是B。为什么?
s的值应为s=a+(1+2+3...+c), 这样的话应该是答案A 呀,为什么会是B?
请指教,谢谢
读懂C++
递归
程序
递归
在计算学科中是一种非常重要的方法,计算理论中到处都有用
递归
进行表述的问题及求解方法。 在程序设计中,数据描述和算法表达也常用
递归
,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,
递归
策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。 掌握
递归
,计算机类专业的学生必须要做到。 本文基于一个C++
递归
程序,分步骤进行演示,帮助你知道其执行过程,试图帮助你啃下这块硬骨头。
关于
递归
调用中是否一定需要返回值和参数问题。
关于
递归
调用中是否一定需要返回值和参数问题。我答案是不一定,两者都可以没有,只需要满足出
递归
的条件即可。 我们先来看看
递归
调用中需要注意的事项: 1.
递归
一定要有出口,否则就是死
递归
。 2.
递归
的次数不能太多,否则会出现内存溢出。 3.构造方法不能
递归
使用 回归正题: 第一种情况没有返回值的情况,因为不是特意测试
递归
的demo。只是在多级文件的复制中用到了,所以代码有点多 /** *@author 波波 *@date 2020年7月20日 *2、复制多级文件夹 举例:E:\Ja
关于
递归
次数过多,报错的问题
今天写一道算法题的时候出现的问题,记下来,以防以后出现此错误 题目 : Description: 求A^B的最后三位数表示的整数。 说明:A^B的含义是“A的B次方” Input: 输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。 Output: 对于每个测试实例,请输出A^B的最后三...
算法设计关于
递归
方程T(n)=aT(n/b)+f(n)之通用解法
算法设计关于
递归
方程T(n)=aT(n/b)+f(n)之通用解法 在算法设计中经常需要通过
递归
方程估计算法的时间复杂度T(n),本文针对形如T(n)=aT(n/b)+f(n)的
递归
方程进行讨论,以期望找出通用的
递归
方程的求解方式。 算法设计教材中给出的Master定理可以解决该类方程的绝大多数情况,根据Master定理:o-渐进上界、w-渐进下界、O-渐进确界。 设a≥1,b>1为常数,f(
关于
递归
前后语句执行顺序
递归
前后语句的执行顺序:先从外到内,再从内到外
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章