C++暴力递归

C++暴力递归相关题目

#include<iostream>
#include<vector>
#include<string>
#include<list>
#include<algorithm>
#include<stack>
using namespace std;
//1.汉诺塔问题
//2.打印一个字符串的全部子序列
//3.打印一个字符串的全部排列(要求不出现重复的排列)
//4.聪明人游戏:给定一个整数数组,代表数值不同的纸牌排成一条线,玩家A和玩家B依此拿走每张纸牌规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最右或最左的纸牌,玩家A和玩家B都是绝顶聪明,请返回最后获胜者的分数
//5.逆序一个栈(不能用额外空间)
//6.对应转换  :1和A对应 2和B对应,,26和Z对应
//7.给定两个长度为N的数组weights和values,weights[i]和values[i]分比尔代表i号物品的重量和价值,给定一个整数bag表示一个载重bag的袋子,你长的物品不能超多这个重量,返回你能装下最多的价值是多少

//1.汉诺塔问题
void func(int i, string start, string end, string other)
{
   
	if (i == 1)
	{
   
		cout << "Move 1 from" << start << "to" << end << endl;
	}
	else
	{
   
		func(i - 1, start, other, end);
		cout << "Move" << i << "from" << start << "to" << end << endl;
		func(i - 1, other, end, start);
	}
}
void hanoi(int n)
{
   
	if (n > 0)
	{
   
		func(n, "左", "右", "中");
	}
}

//2.打印一个字符串的所有子排列(子集)
void process(string str, int i)
{
   
	if (i == str.length())
	{
   
		cout << str << endl;
		return;
	}
	process(str, i + 1);
	char tmp = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值