#include fun(int x) { if(x/2>0)fun(x/2); printf("%d",x); } main() { fun(6); printf("\n"); 这是个递归的程序.当x/2>0时,进行递归.执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1).到fun(1)时,x/2不大于0了,开始依次返回,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 23:54:27
#include fun(int x) { if(x/2>0)fun(x/2); printf(0时,进行递归.执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1).到fun(1)时,x/2不大于0了,开始依次返回," />

#include fun(int x) { if(x/2>0)fun(x/2); printf("%d",x); } main() { fun(6); printf("\n"); 这是个递归的程序.当x/2>0时,进行递归.执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1).到fun(1)时,x/2不大于0了,开始依次返回,
#include fun(int x) { if(x/2>0)fun(x/2); printf("%d",x); } main() { fun(6); printf("\n");
这是个递归的程序.当x/2>0时,进行递归.
执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1).到fun(1)时,x/2不大于0了,开始依次返回,也就是执行printf("%d",1);->printf("%d",3);->printf("%d",6);
输出的结果是:
136
如何知道是递归函数呢 然后为什么是fun(6)->fun(3)->fun(1),我没有财富分,不过会加人品分哦

#include fun(int x) { if(x/2>0)fun(x/2); printf("%d",x); } main() { fun(6); printf("\n"); 这是个递归的程序.当x/2>0时,进行递归.执行fun(6)的时候,会一次执行fun(6)->fun(3)->fun(1).到fun(1)时,x/2不大于0了,开始依次返回,
#include
fun(int x)
{
if(x/2>0)
fun(x/2);
printf("%d",x);
}
main()
{
fun(6);
}
先说下递归函数吧;
对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数.
就是上题的 :fun(6) 6/2=3》0 再调用 fun(6/2) 3/2=1》0 再调用fun(3/2) 1/2=0==0 所以输出x即 1 再回去 fun(6/2) 输出 3 然后才是 fun(6) 输出6 所以结果是 136
不知道你明白不明白