码迷,mamicode.com
首页 > 其他好文 > 详细

做题小感(递归)

时间:2018-03-11 17:48:07      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:nbsp   while循环   print   pos   while   大于   col   AC   pre   

在使用递归中,要小心对于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...*/

 

做题小感(递归)

标签:nbsp   while循环   print   pos   while   大于   col   AC   pre   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!