首页 > 代码库 > 递归问题总结

递归问题总结

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);
}

递归问题总结