做题小感(递归)

Posted mayfly-nymph

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做题小感(递归)相关的知识,希望对你有一定的参考价值。

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

 

以上是关于做题小感(递归)的主要内容,如果未能解决你的问题,请参考以下文章

做题小技巧

做题小心得

ACM 刷题小技巧

基于Springboot+mybatis-plus+spring security的408刷题小程序

初读《构建之法》小感

ZROI2017 做题笔记