输出纸片折痕方向
2016-04-26 23:00
274 查看
请把纸条竖着放在桌上,然后从纸条的下边向上对折,压出折痕后再展 开。此时有1条折痕,突起的方向指向纸条背面,这条折痕叫做“下”折痕;突起的方向向指向纸条正面的折痕叫做“上”折痕。如果每次都从下边向上边对折,对折N次。请从上到下计算出所有折痕的方向。
给定折的次数 n ,请返回从上到下的折痕的数组,若为下折痕则对应元素为”down”,若为上折痕则为”up”.
思路:动手折一下就可以发现规律:n=1时,一条折痕 a,朝下;n=2时,新增两条折痕 b,c,分别在 a 的左右呈现下、上的分布;n=3时,在上次新增两条折痕 b 的左右新增 d,e,呈现下、上分布,c的左右新增 f,g, 呈现下、上分布。这是一个递归的过程,中间为下,左右分别为下上。
给定折的次数 n ,请返回从上到下的折痕的数组,若为下折痕则对应元素为”down”,若为上折痕则为”up”.
思路:动手折一下就可以发现规律:n=1时,一条折痕 a,朝下;n=2时,新增两条折痕 b,c,分别在 a 的左右呈现下、上的分布;n=3时,在上次新增两条折痕 b 的左右新增 d,e,呈现下、上分布,c的左右新增 f,g, 呈现下、上分布。这是一个递归的过程,中间为下,左右分别为下上。
#include<iostream> #include<vector> #include<string> const int n = 4; using namespace std; void printTree(vector<string> &V, int n, string str){ if (n>0){ printTree(V, n - 1, "down"); V.push_back(str); printTree(V, n - 1, "up"); } } void main(){ vector<string> result; printTree(result, n, "down"); for (vector<string>::iterator ite = result.begin(); ite != result.end();ite++){ cout << *ite<<" "; } cin.get(); }
相关文章推荐
- C++第4次试验——输出星号图
- Servlet课程0426(九)Servlet服务器端创建Cookie和客户端读取Cookie
- MyEclipse和tomcat结合编写jsp对于中文乱码的解决方法
- nopcommerce商城系统--如何编写一个插件
- 模拟WeChat
- 编程珠玑ch01
- UVa--11572 Unique Snowflakes(尺取法)
- DP 动态规划 Problem A 1001 最长子序列
- 读芥川龙之介小说
- Android带图片的Toast(自定义Toast)
- [IT业界] 网盘纷纷停止服务,下一个是谁?
- CMakeLists.txt杂记
- mysql修改表或者数据库的总结
- 作为后台人员你需要知道的CSS基本知识
- 千方百计获取百度网盘下载链接
- group by的使用
- 卿学姐与诡异村庄(并查集)
- Android Studio快捷键
- 子串和
- 剑指offer:最小的K个数