九连环(“华为杯”山东理工大学第十一届ACM程序设计竞赛(正式赛)网络同步赛)

本文介绍了九连环这一传统智力玩具的玩法,并提出了一种解决将所有连环取下来的最少操作步骤问题。通过递归算法,给出输入连环个数n后的详细操作步骤输出示例。
摘要由CSDN通过智能技术生成

Problem Description
不知道大家有没有玩过一个叫做 九连环 的玩具,如下图所示。

如果你不了解九连环,那玄黄就带你领略九连环的奥妙: 
九连环是我国传统的民间智力玩具,玩具上面有九个连环套在杆上,目标就是通过一定的方式将九个连环从杆上全部取下来。 
玩法是这样的: 
1、对每个环,有2种操作:把这个环放到杆上或把这个环从杆上取下 
2、你可以随意的对第1个环进行操作 
3、如果你想对第i个环(i>1)进行操作,你必须将第i-1个环放在杆上,且必须把前i-2个环从杆上取下

Input
输入一个整数n ( 0<n<10 ),代表杆上面的连环个数。

Output
输出把所有连环取下来的最少操作步骤,每一步占一行,输出一个整数i和操作”UP”或者”DOWN”,代表将第i个环放到杆上或从杆上取下来,整数和操作用空格分开。详情见示例输出。

Sample Input
4
Sample Output
2 DOWN 
1 DOWN 
4 DOWN 
1 UP 
2 UP 
1 DOWN 
3 DOWN 
1 UP 
2 DOWN 
1 DOWN

简单递归

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <sstream>
#include <cstdio>
#include <vector>
#include <string>
#include <cmath>
#include 
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值