九连环解法和小程序。
九连环解法秘籍:
先说一下原理:要想解下第9环则必须把第8环前面所有的环清掉,
同理,要想解下第7环则必须把第6环前面所有的环清掉,要想解下第5
环则必须把第4环前面所有的环清掉,要想解下第3环则必须把第2环前
面所有的环清掉。所以第一步就是把第一个环从夹缝中取下。然后一步
一步重复步骤一、二就可以取下所有的环了。无论是上环还是下环都要
从夹缝中操作,从夹缝外直接套上是不行的。
现在开始解环:
步骤一:更改第一个环和第二个环的状态,(1,在上;0,在下)
第一状态:01*******
第二状态:00*******
仅在此两个状态之间改变,如果是第一状态则改为第二状态;如果是
第二状态则改为第一状态。
步骤二:找到在上面的最小的那个环,更改其下一个环的位置。下一个
环在上则取下,在下则装上。例如
000111111 => 000101111
010001011 => 011001011
反复重复步骤一、二,即可解掉所有的环。
上环步骤一样,依然是重复上面两个步骤。
附上自己的小程序:NineCircle.java
public class NineCircle {
final int UP=1,DOWN=0;
int circle[]={DOWN,UP,UP,UP,UP,UP,UP,UP,UP};
int step;
public boolean isAllDown(){
for(int i=0;i<9;i++){
if(circle[i]==UP){
return false;
}
}
return true;
}
public void setAllDown(){
step=0;
for(int i=0;i<9;i++){
circle[i]=DOWN;
}
printCircle();
}
public void setAllUP(){
step=0;
for(int i=0;i<9;i++){
circle[i]=UP;
}
// circle[0]=DOWN;
printCircle();
}
public boolean isAllUp(){
for(int i=1;i<9;i++){
if(circle[i]==DOWN){
return false;
}
}
return true;
}
public void untie(){
setAllUP();
System.out.println("Begin to untie it!");
while(!isAllDown()){
first();
if(!isAllDown()){
second();
}
}
System.out.println("Well Done!");
}
public void tie(){
setAllDown();
System.out.println("Begin to tie it!");
while(!isAllUp()){
first();
if(!isAllUp()){
second();
}
}
System.out.println("Well Done!");
}
public void first(){
if(circle[0]==DOWN && circle[1]==UP){
circle[1]=DOWN;
printCircle();
}else if(circle[0]==DOWN && circle[1]==DOWN){
circle[1]=UP;
printCircle();
}else{
circle[0]=DOWN;
circle[1]=UP;
printCircle();
}
}
public void second(){
if(circle[minUP()+1]==UP){
circle[minUP()+1]=DOWN;
printCircle();
}else{
circle[minUP()+1]=UP;
printCircle();
}
}
public int minUP(){
for(int i=1;i<9;i++){
if (circle[i]==UP){
return i;
}
}
return 10;
}
public void printCircle(){
String s="";
for(int i=0;i<9;i++){
s+=String.valueOf(circle[i]);
}
System.out.println(step+":"+s);
step++;
}
public NineCircle() {
}
public static void main(String[] args) {
NineCircle nc=new NineCircle();
nc.untie();
nc.tie();
}
}
九连环解法和小程序。相关推荐
- 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序
<Q分解法潮流计算matlab小程序>由会员分享,可在线阅读,更多相关<Q分解法潮流计算matlab小程序(18页珍藏版)>请在人人文库网上搜索. 1.Q分解法潮流计算matl ...
- 用python编写一个猜年龄的小程序-用Python来写一个男女相亲小程序|码农的情人节...
功能: 你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写 第一部分:用户输入部分 1.获取用户的输入:我们用raw_input() args =raw ...
- 微信小程序开发BUG经验总结
摘要: 常见的微信小程序BUG! 小程序开发越来越热,开发中遇到各种各样的bug,在此总结了一些比较容易掉进去的坑分享给大家. 1. new Date跨平台兼容性问题 在Andriod使用new Da ...
- c语言弹出文本框,微信小程序弹出文本输入框
你应该用 点击详情.了解更多! 详情 史蒂芬孙 2018-12-19 00:54 0评论 0赞同 在微信平台下开发小程序,接口输出的数据应该一致,如果是ios不一致,也应该由基础库去实现 详情 Sac ...
- 神策数据王乾:微信生态与小程序发展趋势洞察
▼▼▼ 导读 在 2020 年的微信公开课上,微信官方宣布,小程序的重点目标是助力商家打造自己的商业闭环.而随着近期小程序热度的持续攀升,品牌零售商也纷纷强化了对这一重要自建渠道的重视. 为此,神策数 ...
- 微信小程序之数独挑战九宫格
微信现有的九宫格小程序感觉要么功能不好用,要么题不太好,自己做了一个,题用程序生成的都有唯一解,分为初级.中级.高级.大师: 入门级别比较简单,入门者很容易就能做答: 中级稍有难度,需要利用数独的基本 ...
- 通过小程序和微信社群来构建产品运营体系
背景介绍 目前在一个在线英语培训团队做产品经理.去年在来这个团队之前,团队的线上只能做通过微信公众号发一些推文和社群活动来吸引流量,作为一个几百人的公司,这点和一些小团队和个人公众号没什么区别. 正逢 ...
- 三步解决微信小程序cdn加速(资源大小超过200k)
刚开始开发小程序的时候,上传代码会遇到这样的问题:图片和音频资源大小超过 200 K 下面是官方建议 [建议]小程序代码包里可以存放一些必要的静态资源(例如tabbar的icon等),不过静态资源体积 ...
- 关于微信小程序的架构与系统设计的几点观感
本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借"大规模网络流媒体服务关键支撑技术"项目获得2015年国家科学技术进步奖 ...
- 迅雷首席架构师刘智聪:微信小程序的架构与系统设计的几点观感
笔者注:本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借"大规模网络流媒体服务关键支撑技术"项目获得2015年国家科学技 ...
最新文章
- bug诞生记——const_cast引发只读数据区域写违例
- zigbee协议栈学习(二)
- Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
- [leetcode]5366. 检查网格中是否存在有效路径
- oracle not in 改为 not exist
- KVM虚拟机迁移具体步骤
- 上号神器扫码登录网站使用教程
- 特征提取丨共空间模式 Common Spatial Pattern (CSP)
- 闪电对计算机或网络设备的威胁,计算机网络的雷电防护_计算机网络
- 寂静岭3java攻略_《寂静岭3》完整流程攻略
- P2P“点融网”凭什么拿得2.07亿美元融资?
- paddleocr文本识别模型的训练
- 我的世界服务器背景音乐修改,我的世界怎么自定义背景音乐教程攻略
- C++实现指针式时钟Sample
- 罗斯魔影消消乐h5游戏源码
- [JavaScript 刷题] 树 - 完全二叉树的节点个数, leetcode 222
- [Python]-Wechat工具
- 软银云商|总部参观考察
- 使用PyTorch来进行肺癌早期检测:2、数据集准备
- 计算机一级ms模拟试题,计算机一级ms模拟试题及答案.doc
热门文章
- 图表和文字等元素在电子大屏下变形的解决方案
- 真励志!从月薪2300深圳流水线女工,逆袭为年薪80万谷歌工程师,又因疫情失业:我绝不轻易认输...
- 粗谈全息投影与裸眼3D
- java aes iv_java AES加密解密
- 华为s5700交换机忘记console的密码,怎么恢复
- 外包被裁能要n+1吗?签约软通动力,在滴滴工作,滴滴裁员,我要n+1,软通不认!...
- c语言写的exe文件怎么改图标,c/c++修改exe文件图标
- 中南大学2019计算机研究生分数线,2019中南大学研究生分数线汇总(含2016-2019历年复试)...
- 数据库附加失败解决方法
- 教程 | Rhino Compute Sevice介绍及环境搭建