首页 > 其他分享 >Hanoi - plus

Hanoi - plus

时间:2023-04-10 18:23:40浏览次数:44  
标签:int Hanoi char plus hannota cs 汉诺塔 盘子

题目描述

如果将课本上的汉诺塔问题稍做修改:给定 N 只盘子,3 根柱子,但是允许每次最多移动相邻的 M 只盘子(当然移动盘子的数目也可以小于 M), 最少需要多少次?

 

输入格式

输入数据仅有一行,包括两个数 N 和 M(0<=M<=N<=8)

 

输出格式

仅输出一个数,表示需要移动的最少次数

 

样例输入

 5    2

样例输出

7

代码

#include <iostream>
using namespace std;
int count=0;    //公有定义

void cs(char A,int N,char C)
{
count++;
}

void hannota(int N,char A,char B,char C)
{
if(N==1)
{
cs(A,1,C);
}

if(N!=1)
{
hannota(N-1,A,C,B);
cs(A,N,C);
hannota(N-1,B,A,C);
}
}

int main( )
{
int N,M;
char A,B,C;
cin>>N>>M;

if(N%M==0)                             //将N个盘分成N/M份
{
N=N/M;
}

if(N%M!=0)                             //多出来的算作一个盘
{
N=N/M;
N++;
}
hannota(N,'A','B','C');
cout<<count;
return 0;
}

//与典型汉诺塔相比,相邻M盘条件不同,所以将M盘看作整体

//其实是 hanoi

标签:int,Hanoi,char,plus,hannota,cs,汉诺塔,盘子
From: https://www.cnblogs.com/BOKE2/p/17303887.html

相关文章

  • MyBatisPlus——代码生成器
    代码生成器快速生成各项代码步骤创建Generator类,并创建main方法创建代码生成器AutoGeneratorautoGenerator=newAutoGenerator();连接要生成实体类的数据库DataSourceConfigdataSource=newDataSourceConfig();dataSource.setDriverName(......
  • MyBatisPlus——DML编程控制——乐观锁
    乐观锁业务并发现象带来的问题:秒杀最后一单用于中小型项目(2000请求以下)添加一个数据库字段,使每次请求修改数据时,这个字段就加一,当有多人同时请求时,这些人同时获取到的都是相同的该字段,但当有一人完成了秒杀后字段加一,其他同时获取到的该字段就不匹配了配置步骤数据库表中......
  • MybatisPlus——DML编程控制——增删改
    DML编程控制id生成策略控制不同的表应用不同的id生成策略日志:自增(1,2,3,4,......)购物订单:特殊规则(FQ23948AK3843)外卖单:关联地区日期等信息(1004202003143491)关系表:可省略id......注解控制@TableId类型:属性注解位置:模型类中用于表示主键的属性定义上方作用:设置......
  • Mybatis-Plus详解(一篇带入了解底层原理)
    一.MP简介我们知道,Mybatis属于一个半自动的ORM框架。之所以说Mybatis是一个半自动的ORM框架,原因是它还需要我们自己在注解或是映射文件中编写SQL语句,并没有实现完全的自动化。SQL语句的编写,虽然增加了项目和业务需求实现的灵活性,但对一些基本表的操作而言,无疑增加了数据库操作的......
  • B. Plus and Multiply
    B.PlusandMultiply手模拟了一下观察每个式子,化简得到:$a^x+by=n$由于$a^x$是指数增长,直接枚举它的幂次即可,注意对$a=1$的情况特判//AConemoretimes#include<bits/stdc++.h>usingnamespacestd;#definefifirst#definesesecond#definepbpush_ba......
  • SQLPLUS中HELP帮助的安装与删除
    手工建库后SQLPLUS中HELP默认是没有的,下面记录下如何安装及删除SQLPLUS中的HELP命令。注意:SQLPLUS的HELP命令只有在数据库OPEN时才能使用。非OPEN状态使用HELP也报错:SP2-0171:HELPsystemnotavailable.实验如下: 注意:ORACLE11.2.0.4环境下实验SYSDB......
  • Mybatis-plus字段自动填充功能介绍
    新建实体公共字段类@DatapublicclassBaseEntity{/***创建时间*/@TableField(fill=FieldFill.INSERT)privateLocalDateTimecreateTime;/***更新时间*/@TableField(fill=FieldFill.INSERT)privateLocalDateTim......
  • ava: 程序包com.alibaba.nacos.api.common不存在_RuoYi-Cloud-Plus-master_jar包不存
    来看看原因吧,jar包是存在的,但是就是在idea中引用不到,来看看怎么回事: 原来就是这个包找不到,但是从下面看是有的: 但是注意,这里的com.alibaba.nacos.api...原来可不是这样的,这个是我后来修改过的,原来是只有com.alibaba.nacos.common,而引用的是com.alibaba.nacos.api.commo......
  • vue全家桶进阶之路29:Element Plus
    ElementPlus是一个用于Vue.js的UI组件库,为开发人员提供了一组可重用和可定制化的组件,用于构建现代Web应用程序。它是流行的ElementUI库的扩展,重点是提高性能和可访问性。ElementPlus包括广泛的组件,如按钮、表单、表格、对话框等。除了常规的UI组件外,ElementPlus还提供了一些......
  • mybaits-plus优雅的实现数据权限
    前言项目使用mybaits-plus,所以在mybaits-plus的基础上增加数据权限的过滤mybaits-plus自带数据权限支持,但由于系统数据权限相对复杂,通过查看文档发现好像并不适用,且原项目版本低,所以最终还是通过自己的方式实现数据范围我们系统相对复杂,比如可以按机构/用户等多种维度过滤,并且可以......