C经典分析题

 

 

#include <stdio.h>
#include <stdlib.h>

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


int main()
{
    func(10);
    
    return 0;
}

输入结果:

0
1
2
5
10

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    //func(10);
    int i = 10;
    if (i > 0)    // 10
    {
        {
            if (i/2 > 0)  // 5
            {
                {
                    if (i/2/2 > 0)  // 2
                    {    
                        {
                            if (i/2/2/2 > 0) // 1
                            {    
                                {
                                    if (i/2/2/2/2 > 0) // 0
                                    {    
                                        //到这里停止,不在调用func
                                    }
                                    printf("%d\n", i/2/2/2/2); //输出0    
                                }
                                                
                            }                
                            printf("%d\n", i/2/2/2);    //输出1                    
                        }
                    }            
                    printf("%d\n", i/2/2);  //输出2
          }
            }        
            printf("%d\n", i/2);  //输出5
        }
    }    
    printf("%d\n", i);  //输出10
    
    return 0;
}
posted @ 2020-03-27 16:53  唯一诺  阅读(128)  评论(0编辑  收藏  举报