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

举报
王博Kings 发表于 2020/12/30 00:13:26 2020/12/30
【摘要】 //ruler.cpp -- 使用递归方法#include<iostream>const int Len = 66;const int Divs = 6;void subdivide(char ar[], int low, int high, int level); int main(){ char ruler[Len]; int i; for (i = 1; i < Len...

  
  1. //ruler.cpp -- 使用递归方法
  2. #include<iostream>
  3. const int Len = 66;
  4. const int Divs = 6;
  5. void subdivide(char ar[], int low, int high, int level);
  6. int main()
  7. {
  8. char ruler[Len];
  9. int i;
  10. for (i = 1; i < Len - 2; i++)
  11. ruler[i] = ' ';
  12. ruler[Len - 1] = '\0';
  13. int max = Len - 2;
  14. int min = 0;
  15. ruler[min] = ruler[max] = '|';
  16. std::cout << ruler << std::endl; //第一行首末设定'|'
  17. for (i = 1; i <= Divs; i++)
  18. {
  19. subdivide(ruler, min, max, i);
  20. std::cout << ruler << std::endl;
  21. for (int j = 1; j < Len - 2; j++)
  22. {
  23. ruler[j] = ' ';
  24. }
  25. }
  26. return 0;
  27. }
  28. //用来画中间的线,设定中间的线
  29. void subdivide(char ar[], int low, int high, int level)
  30. {
  31. if (level == 0)
  32. return;
  33. int mid = (high + low) / 2;
  34. ar[mid] = '|';//中间设定竖线
  35. subdivide(ar, low, mid, level - 1);//左半边
  36. subdivide(ar, mid, high, level - 1);//右半边
  37. }

其中

	ruler[Len - 1] = '\0';
 

表示的意思是:

运行结果:

 

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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