我以前玩的一个游戏 我想玩一个很久以前在电脑上玩过的游戏怎么找
汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。解答结果请自己运行计算,程序见尾部。面对庞大的数字(移动圆片的次数)18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。
后来,这个传说就演变为汉诺塔游戏:
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:
如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
此外,汉诺塔问题也是程序设计中的经典递归问题。
算法思路:
1.如果只有一个金片,则把该金片从源移动到目标棒,结束。
2.如果有n个金片,则把前n-1个金片移动到辅助的棒,然后把自己移动到目标棒,最后再把前n-1个移动到目标棒
(非专业人士可以忽略以下内容)
补充:汉诺塔的算法实现(c++)
#include <fstream>
#include <iostream>
using namespace std;
ofstream fout("out.txt");
void Move(int n,char x,char y)
{
fout<<"把"<<n<<"号从"<<x<<"挪动到"<<y<<endl;
}
void Hannoi(int n,char a,char b,char c)
{
if(n==1)
Move(1,a,c);
else
{
Hannoi(n-1,a,c,b);
Move(n,a,c);
Hannoi(n-1,b,a,c);
}
}
int main()
{
fout<<"以下是7层汉诺塔的解法:"<<endl;
Hannoi(7,'a','b','c');
fout.close();
cout<<"输出完毕!"<<endl;
return 0;
}
C语言精简算法
/* Copyrighter by SS7E */
#include<stdio.h> /* Copyrighter by SS7E */
void hanoi(int n,char A,char B,char C) /* Copyrighter by SS7E */
{
if(n==1)
{
printf("Move disk %d from %c to %c\n",n,A,C);
}
else
{
hanoi(n-1,A,C,B); /* Copyrighter by SS7E */
printf("Move disk %d from %c to %c\n",n,A,C);
hanoi(n-1,B,A,C); /* Copyrighter by SS7E */
}
}
main() /* Copyrighter by SS7E */
{
int n;
printf("请输入数字n以解决n阶汉诺塔问题:\n");
scanf("%d",&n);
hanoi(n,'A','B','C');
}/* Copyrighter by SS7E */
PHP算法:
<?php
function hanoi($n,$x,$y,$z){
if($n==1){
move($x,1,$z);
}else{
hanoi($n-1,$x,$z,$y);
move($x,$n,$z);
hanoi($n-1,$y,$x,$z);
}
}
function move($x,$n,$z){
echo 'move disk '.$n.' from '.$x.' to '.$z.'<br>';
}
hanoi(10,'x','y','z');
?>
JAVA算法:
public class Haniojava
{
public static void main(String args[])
{
byte n=2;
char a='A',b='B',c='C';
hanio(n,a,b,c);
}
public static void hanio(byte n,char a,char b,char c)
{
if(n==1)
System.out.println("move "+a+" to "+b);
else
{
hanio((byte)(n-1),a,c,b);
System.out.println("move "+a+" to "+b);
hanio((byte)(n-1),c,b,a);
我也是
汉诺塔
找一个我以前玩过的游戏~
叫涂鸦上帝,望采纳
直接用你的杀毒软件清理痕迹就行了啦!
...然后走两步拐个弯就有丧尸掉出来爬出来的一个游戏?
答:死亡之屋吧?我也就玩过《死亡之屋3》,里面序章俩男人在研究所打僵尸,不用你自己走路,只需要在转好视角的时候瞄准僵尸打就行。第一关boss是个从地下钻出来的挥舞着骷髅帮的巨人,然后可以选关,打一个怪树或者一个在笼子里爬上爬下的大猩猩?是世嘉的游戏,有段年头了。
以前小时候玩的游戏一个人骑着马手里拿着两把枪名字叫什么
答:游戏中的冲撞攻击非常给力,是许多玩家的最爱。科幻小说平机王趣说游戏冲撞,怀旧给力。哪些冲撞攻击的游戏给你印象最为深刻?科幻小说平机王趣说游戏中的冲撞,很怀旧。游戏中的冲撞攻击其实很给力,在现今新游戏中却并不流行。科幻小说平机王趣说游戏冲撞。怀旧经典游戏玩家朋友,你玩过哪些冲撞攻击的...
以前有一个小游戏,孤岛生存之类,可以在海边捡贝壳,主角是男的,出生点...
答:以前有一个小游戏,孤岛生存之类,可以在海边捡贝壳,主角是男的,出生点附近有一个树桩上面做箭,英文名 求生
求一款安卓游戏以前玩过的忘记叫什么了。大概记得在一个房间里,找钥匙...
答:fc生化危机,主角一行人先进到一所大房子里,然后分散各自搜查,通过各种线索找到钥匙打开门,途中还有各种变异的人和狗蝙蝠什么的,最后发现的这场生化危机的起因并逃离了这个地方
我以前玩过一个单机的手游,我忘记名字了,是一个战争策略抢地盘类的
答:单机战争策略抢地盘类的手游,并且没有兵种分类,不是欧洲战争拿破仑一类的手游是文明时代系列的作品。文明时代 (Age of Civilizations)是一款回合制策略游戏,游戏讲述的是在远古时代向文明时代发展的故事。你可以从64个国家,三个历史年代当中,选择一个国家来发展,然后朝周边发展,你可以建立外交、也可以...
求问,小时候用电视机玩过的一个游戏忘记名字了
答:《淘金者》与Hudson Soft制作的《炸弹人》是前传与后传的关系。游戏中,你必须在敌人抓住你之前取得所有的金子,并跑出逃生的路口。如果你取得了游戏中的全部金子,会有机会在地图正中间刷出一串大香蕉,吃到了可是有很多积分奖励的哦。得到全部金子后,出口的通道就会打开,在游戏里看到是一个粉红的大...
求一个游戏叫特种部队
答:可以同时带领一个部队的人,然后按一个键什么的可以切换到某一个人。最开始的训练还有一个教官。然后就是前面几个任务中有一个我记得是炸了一个防... 以前玩的。效果我记忆中好像还可以。可以同时带领一个部队的人,然后按一个键什么的可以切换到某一个人。最开始的训练还有一个教官。然后就是前面几个任务中...
我记得以前玩过一个游戏,叫什么小镇,类似全民小镇。我记得这个游戏会有...
答:这个游戏可能是:梦想小镇 你看看是不是。
找一个小时候玩的小霸王游戏机里关于一个特工还是间谍类的射击游戏
答:电梯大战 电梯大战,这个游戏TAITO公司可是卯足了劲精心设置的,因为以前的都是写比较小型的GAME,这款就给彻底做大了,哈.三个主角可供选择,看起来 很象间谍,因为第一关就是潜藏在一个敌人运输车的箱子里,从而得以进入敌人的基地.每关都是一个特定的场景楼层,完成任务进入下一个敌兵据点,直到最后摧 ...
求一个单机游戏
答:曾经看过别人玩,但是不记得叫什么名字了,希望有强人知道第一,是2001年到2003年的12月份面市的单机游戏(80%的概率是国产的)第二,女主角,里面的怪有会喷火的龙,还有矮小的矮人,... 曾经看过别人玩,但是不记得叫什么名字了,希望有强人知道第一,是2001年到2003年的12月份面市的单机游戏(80%的概率是国产的)第...