Hanoi双塔问题

Hanoi双塔问题

题目描述

 

给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将 这些国盘移到C柱上,在移动过程中可放在B柱上暂存。要求:

 

 

(1)每次只能移动一个圆盘;

 

(2) ABC三根细柱上的圆盘都要保持上小下大的顺序;

 

任务:An2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An

 

 

输入

 

输入文件hanoi.in为一个正整数n,表示在A柱上放有2n个圆盘。

 

输出

 

输出文件hanoi.out仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An

 

样例输入

1

样例输出

2

提示

 对于50%的数据, 1<=n<=25


对于100% 数据, 1<=n<=200

 

设法建立AnAn-1的递推关系式。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[1000],n;
 4 void Hanoi()
 5 {
 6     int i;
 7     for(i=1;i<=f[0];i++) f[i]*=2;   //按位乘2
 8     f[1]+=2;
 9     for(int i=1;i<=f[0];i++)        //处理进位
10     {
11         f[i+1]+=f[i]/10;
12         f[i]%=10;
13     }
14     if(f[f[0]+1]!=0) f[0]++;        //确定位数
15 }
16 int main()
17 {
18     cin>>n;
19     memset(f,0,sizeof(f));
20     f[0]=1;f[1]=2;
21     for(int i=2;i<=n;i++)
22     {
23         Hanoi();
24     }
25     for(int i=f[0];i>=1;i--)
26         cout<<f[i];
27     cout<<endl;
28     return 0;
29 }
View Code

 

转载于:https://www.cnblogs.com/qing123tian/p/11107540.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中config/index.js:配置的详细理解

当我们需要和后台分离部署的时候&#xff0c;必须配置config/index.js: 用vue-cli 自动构建的目录里面 &#xff08;环境变量及其基本变量的配置&#xff09; 123456789101112131415var path require(path)module.exports {build: {index: path.resolve(__dirname, dist/ind…

uni-app吸顶固定样式

<template><view class"full"><view class"sticky-box"><!-- 搜索 --><uni-search-bar class"unisearchbar" radius"5" placeholder"请输入搜索关键词" clearButton"auto" bgColor&qu…

Django(模板语言-自定义filter和simple_tag)

filter过滤器的主要形式&#xff1a;变量|函数,意思是将变量交给函数处理&#xff0c;而自定义filter就是自己定义函数&#xff0c;因为用到已有的很少。 1.在当前app中创建templatetags模块(包&#xff1a;带__init__.py)&#xff08;必须的&#xff09; 2.在templatetags中创…

uni-app商品分类

<template><view class"classify"><!-- 分类部分 --><view class"cate-left"><view :class"[cate-item,activeIndexindex?active:]" v-for"(item,index) in cateList" :key"index"click"c…

10分钟看懂浏览器的渲染过程及优化

一、浏览器概述 目前的主流浏览器有5个&#xff1a;Internet Explorer、Firefox、Safari、Chrome和Opera浏览器。根据 StatCounter 浏览器统计数据&#xff0c;目前&#xff08;截止2019 年 5 月&#xff09;Firefox、Safari 和 Chrome 浏览器的总市场占有率将近 83.66%。由此可…

浅谈 Vue 项目优化

前几天看到大家说 vue 项目越大越难优化&#xff0c;带来很多痛苦&#xff0c;这是避免不了的&#xff0c;问题终究要解决&#xff0c;框架的性能是没有问题的&#xff0c;各大测试网站都有相关数据。下面进入正题 基础优化 所谓的基础优化是任何 web 项目都要做的&#xff0c;…

uni-app微信小程序一键登录获取权限功能

<button class"bottom size_30" type"primary" lang"zh_CN" click"getUserInfo">一键登录</button>//第一授权获取用户信息》按钮触发getUserInfo() {// 展示加载框uni.showLoading({title: 加载中,});uni.getUserProfile…

第九章 结构体与共用体

姓名&#xff1a;吕家浩 实验地点&#xff1a;教学楼514教室 实验时间&#xff1a;4月30日 一、本章要点 1.通过实验理解结构体和共用体的数据结构2.结构体、共用体中数组的使用及变量的赋值3.结构体和共用体定义时的嵌套使用&#xff08;嵌套使用的结构体必须先定义&…

H5-localStorage数据存储总结

一、什么是localStorage、sessionStorage 在HTML5中&#xff0c;新加入了一个localStorage特性&#xff0c;这个特性主要是用来作为本地存储来使用的&#xff0c;解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k)&#xff0c;localStorage中一般浏览器支持的…

正则校验与时间格式化

// 日期回显 export function formatTime(data&#xff0c;fametYYYY-MM-DD HH:MMM:SS) {if(famet YYYY-MM-DD HH:MMM:SS){const time new Date(data)const year time.getFullYear()const month time.getMonth() 1const day time.getDate()const hour time.getHours()co…

CometOJ#6 双倍快乐(简单DP)

链接&#xff1a;https://www.cometoj.com/contest/48/problem/B 题意&#xff1a;给出一串数列&#xff0c;要求在这个数列中找出两条“不相交”的非下降子序列使得子序列之和最大。“不相交”即不存在任意的ai同时存在于两个子序列中。 分析&#xff1a;笔者刷题量不多&#…

iOS开发-证书问题精析~

在iOS开发过程中&#xff0c;不可避免的要和证书打交道&#xff0c;真机调试、App上架、打包给测试去测试等都需要搞证书。在此过程中我们会遇到很多的问题&#xff0c;但是如果掌握了真机调试的原理和本质&#xff1b;遇到问题&#xff0c;我们就更容易定位问题之所在&#xf…

selenium+Java自动化

转载于:https://www.cnblogs.com/arvin-feng/p/11110483.html

html 5 本地数据库(Web Sql Database)

基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询&#xff0c;假设你的离线应用程序有需要规范化的存储功能 本文讲述如何使用核心方法openDatabase、transaction、executeSql 1.新建一个网页&#xff0c;比如&#xff1a;test.html 内容如下&am…

前端学习资料及路线名称网站

IT前端学习资料及路线常用PC端UI组件库饿了么(Element-UI)https://element.eleme.cn/#/zh-CN常用小程序端UI组件库uView UIhttp://v1.uviewui.com/名称网站JQuery文件网https://code.jquery.com/jquery/jQuery手册&#xff08;pc端&#xff09;http://jquery.cuishifeng.cn/jQu…

JS实现生成一个周对应日期数组

/* 获取日期和周 */getDateWeek() {/* 得到当前日期的时间戳 */const timestamp Date.now()// const timestamp new Date(2019, 7, 30, 0, 0, 0, 0).getTime()const dateWeek Array.from(new Array(7)).map((_, i) > {/* 得到当前周每一天的时间戳 */const weekTimestamp…

npm升级package.json依赖包

使用npm管理node的包&#xff0c;可以使用npm update <name>对单个包升级&#xff0c;对于npm的版本大于 2.6.1,可以使用命令: npm install -g 升级全局的本地包。 对于版本小于2.6.1的一个一个包的升级实在是太麻烦&#xff0c;就想找到一个升级所有本地包的方法&#x…

Sublime Text 3 快捷键汇总

Sublime Text 3非常实用&#xff0c;但是想要用好&#xff0c;老是忘记&#xff0c;汇总一下&#xff0c;方便自己方便别人。 用惯了vim&#xff0c;有些快捷键也懒得用了&#xff0c;尤其是在win下面&#xff0c;还有图形界面&#xff0c;所以个人觉得最有用的还是搜索类&…

Minimal coverage (贪心,最小覆盖)

题目大意&#xff1a;先确定一个M&#xff0c; 然后输入多组线段的左端和右端的端点坐标&#xff0c;然后让你求出来在所给的线段中能够 把[0, M] 区域完全覆盖完的最少需要的线段数&#xff0c;并输出这些线段的左右端点坐标。 思路分析&#xff1a; 线段区间的起点是0&#x…

vuex知识点

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式&#xff1b;集中存储和管理应用的所有组件状态。 状态&#xff1a;什么是状态&#xff0c;我们可以通俗的理解为数据。Vue只关心视图层&#xff0c;那么视图的状态如何来确定&#xff1f;我们知道是通过数据驱动&#xff0c…