graceting

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1,一个经典的例子,理解递归过程的展开

#include<stdio.h>
void func(int i){
if(i>0)
  func(i/2);
printf("%d",i)
}
int main(){
func(10);
return 0;
}

输出结果是:

0
1
2
5
10

不是预想的0。

分析:递归展开的过程如下:

void fun(int i)
{
   if (i>0)
   {
      //fun(i/2);
      if(i/2>0)
      {
         if(i/4>0)
         {
            …
         }
         printf("%d\n",i/4);
      }
      printf("%d\n",i/2);
   }
   printf("%d\n",i);
}

posted on 2014-11-18 22:03  IT-tingting  阅读(187)  评论(0编辑  收藏  举报