递归剖析

来源:互联网 发布:推倒 知乎 编辑:程序博客网 时间:2024/06/11 00:27

递归调用一般在有大量数据时不采用,每一次递归就是寻找与自己功能相同的函数而已,就像李家里有快烂掉的苹果8个,他自己吃不了找一个人帮他吃,那个人留了一个苹果,然后把其他苹果给了别人,那个人也留下了一个苹果,然后这个人继续找人,当最后一个留下苹果后,继续找人,找到的那个人反馈给他“你妹”,那么他自己就把苹果吃了,吃完告诉上一个,知道的人也把自己留下的苹果吃了,知道那人反馈给李家,我帮你把所有苹果吃了,这样就有8个人帮李家吃完李家的苹果,返回数字12345678;

程序为:

void printInt(int n)

{

if (n > 0) {

return;

}

//吃苹果

printInt(n / 10);

//找人

printf("%d  ", n % 10);

}

int main (int argc, const char * argv[])

{

printInt(12345678);

}

//输出1  2  3  4  5  6  7  8

递归只是找到与自己功能相同的函数,不是循环的过程,void函数没有返回值,在main中,直接输出就可以了。。苹果吃完了,函数也就调用完了。。

0 0