【C++】递归(1)--包含一个递归调用的递归理解

举报
王博Kings 发表于 2020/12/30 01:12:15 2020/12/30
【摘要】 总体思维: 递归是一层一层进去,然后再从最里面一层一层出来 ;比如你买了一个俄罗斯套娃,一共3层,大白+中黑+小红: 大-->>中-->>小这样进来,然后红-->>黑-->>白  出来! 1.递归调用的递归  void recurs(argumentlist){ statements1 if (test) recurs(arguments) statements...

总体思维:

递归是一层一层进去,然后再从最里面一层一层出来 ;比如你买了一个俄罗斯套娃,一共3层,大白+中黑+小红

大-->>中-->>小这样进来,然后红-->>黑-->>白  出来!

1.递归调用的递归 


  
  1. void recurs(argumentlist)
  2. {
  3. statements1
  4. if (test)
  5. recurs(arguments)
  6. statements2
  7. }

  
  1. // recur.cpp -- using recurion
  2. //递归的简单理解使用--by Learning_CV 2019/04/15
  3. #include<iostream>
  4. void countdown(int n);
  5. int main()
  6. {
  7. countdown(4);
  8. return 0;
  9. }
  10. void countdown(int n)
  11. {
  12. using namespace std;
  13. cout << "计数 ... " << n << endl;
  14. if (n > 0)
  15. countdown(n - 1);
  16. cout << n << ": 回退!\n";
  17. }

运行结果:

理解:

 

将地址输出看一下 


  
  1. // recur.cpp -- using recurion
  2. //递归的简单理解使用--by Learning_CV 2019/04/15
  3. #include<iostream>
  4. void countdown(int n);
  5. int main()
  6. {
  7. countdown(4);
  8. return 0;
  9. }
  10. void countdown(int n)
  11. {
  12. using namespace std;
  13. cout << "计数 ... " << n << "( n 地址 " << &n << ")"<<endl;
  14. if (n > 0)
  15. countdown(n - 1);
  16. cout << n << ": 回退!" << "( n 地址 " << &n << ")"<<endl;
  17. }

 

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/89307208

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。