首页 > 其他 > 详细

做题小感(递归)

时间:2018-03-11 16:37:48      阅读:130      评论:0      收藏:0      [点我收藏+]

在使用递归中,要小心对于while循环的使用,因为当进行递归的同时也会进行循环,因此结果或许会出人意料。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 void func(int num)
 5 {
 6     while(num>1)
 7     {
 8         //func(num-1);
 9         printf("%c",65+num-1);
10         printf("%c",65);
11         func(--num); 
12     }
13 }
14 
15 int main(void)
16 {
17     int num;
18     scanf("%d",&num);
19     func(num);
20     return 0;
21 }
22 /*
23 --num    CABABA   --num变成2进行递归,同时,进入循环进行判断,所以打印两次2的值,然后,都变为1,再次分别进入循环与递归,不满足 退出 
24 num--    CACA...  首先num进入,分别进入循环和递归,在递归中,num自减1,等待本次递归结束,因为num=3时恒大于1,所以递归一直未结束,造成死循环。 
25 num-1 CABABAB...首先,num-1,变成2,2进入,循环,递归,变成,1,递归不满足,退出本次递归,回到上次递归,变成2,2进入循环,递归,变成1... 
26 
27 前:
28 --num AABAAA
29 num--   崩溃
30 num-1  BABA...*/

 

做题小感(递归)

原文:https://www.cnblogs.com/Mayfly-nymph/p/8544270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!