用栈来模拟递归的技巧

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<cstring>
#include<set>
#include<algorithm>
#include<stack>
#include<string>
#include<cstdio>
#define _for(i, a, b) for (int i = (a); i<(b); ++i)
using namespace std;
struct problem {
int n;
char scr, mid, dest;
problem(int nn, char s, char m, char d) :n(nn), scr(s), mid(m), dest(d) {}
};
stack<problem> stk; int main()
{
int n;
cin >> n;
stk.push(problem(n, 'A', 'B', 'C'));
while (!stk.empty()) {
problem now = stk.top();
stk.pop();
if (now.n == ) { cout << now.scr << "->" << now.dest << endl; }
else {
stk.push(problem(now.n - , now.mid, now.scr, now.dest));//先放最后一个子问题
stk.push(problem(, now.scr, now.mid, now.dest));
stk.push(problem(now.n - , now.scr, now.dest, now.mid));
}
} system("pause");
}

最新文章

  1. CI在ngnix的配置
  2. sqlServer 2008修改字段类型和重命名字段名称的sql语句
  3. 一些webGL的资源
  4. Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
  5. List与Set的contains方法效率问题
  6. HTTP Content-Type的作用
  7. isinstance()和__name__
  8. DataTables给每一列添加下拉框搜索
  9. Azure File文件共享(6):使用Python开发
  10. C#委托好处知多少
  11. Android Demo---如何敲出圆角的Button+圆角头像
  12. PHPCMS V9 添加二级导航
  13. Pyinstaller 打包exe
  14. Django中 media资源配置
  15. Mysql权限操作、用户管理、密码操作
  16. css之操作属性
  17. 二、idea + git
  18. oracle概要文件profile详解
  19. 【加解密专辑】对接触到的PGP、RSA、AES加解密算法整理
  20. Java中反射和Unsafe破坏单例设计模式

热门文章

  1. php 自定义 分页函数
  2. mysql5.7 服务无法启动的问题解决方法
  3. Mac下Intellij IDea发布JavaWeb项目 详解三 (为所有Module配置Tomcat Deployment 并测试web 网页 配置Servlet)
  4. 《shiro框架》
  5. Android井字游戏(一)首页制作
  6. 基于WordNet的英文同义词、近义词相似度评估及代码实现
  7. cxGrid使用汇总4
  8. canvas练习 - 圆
  9. eagle学习汇总
  10. jquery scroll()滚动条事件