社区
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值为多秒?
请指教,谢谢
...全文
169
6
打赏
收藏
关于递归的
fun(int x) { if(x/2>0) fun(x/2); printf("%d ",x); } main() { fun(6); } 这种函数的递归调用我看不懂,到底输出的X值为多秒? 请指教,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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++
递归
程序,分步骤进行演示,帮助你知道其执行过程,试图帮助你啃下这块硬骨头。
Android 音乐播放器源码
Android 音乐播放器,实现
递归
扫描SD根目录歌曲文件,切换播放模式、查看歌曲详细信息等基本功能,源码打包给大家,需要的下载哈 参考:http://blog.csdn.net/linmiansheng/article/details/18455593
关于
递归
重要的一些点
关于
递归
的某些用法关于
递归
重要的一些点
递归
回溯剪枝法标准的
递归
应用 关于
递归
重要的一些点 (一)终止条件 终止条件是
递归
至少最终能出来一个结果的必要条件。基本上在决定使用
递归
的时候就要清楚你应该什么时候终止。 (二)本层操作 这是
递归
最重要的一层,你不仅需要认真考虑怎么通过条件进行下一层
递归
,还需要考虑下一层
递归
的返回结果,更重要的是如何处理这个返回结果,也就是说这个返回结果成功或者失败之后你需要...
关于
递归
函数转换为非
递归
函数的一些方式
关于
递归
函数转换非
递归
函数的一些方式前言目的可行性转换的几种途径 前言 最近在重拾算法和数据结构的一些知识,打算从基本的树的遍历算法入手。网上翻看了很多的二叉树的遍历算法相关文章,二叉树的遍历有前、中、后三种遍历方法。最简单的用
递归
方法遍历,三种方法的逻辑一目了然很好理解,看到非
递归
遍历方法时,前序遍历还能理解,中序和后序遍历看的理解起来感觉不那么顺了,所以想先研究一下
递归
方法改非
递归
方法的一些方...
关于
递归
次数过多,报错的问题
今天写一道算法题的时候出现的问题,记下来,以防以后出现此错误 题目 : Description: 求A^B的最后三位数表示的整数。 说明:A^B的含义是“A的B次方” Input: 输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。 Output: 对于每个测试实例,请输出A^B的最后三...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章