汉诺塔问题

来源:互联网 发布:linux运维开发 编辑:程序博客网 时间:2024/06/06 05:32

晚上去哪校招,第一次参加校招,想想还有点小激动。

递归解决汉诺塔问题,敲点代码,练习练习。^_^

#include <iostream>#include <cstring>using namespace std;void moveTop(int index,int origin[],int destination[]){    int tmp=destination[index];    destination[index]=origin[index];    origin[index]=0;}void moveDisks(int n,int origin[],int destination[],int buffer[]){    if(n<0) return;    moveDisks(n-1,origin,buffer,destination);    moveTop(n,origin,destination);    moveDisks(n-1,buffer,destination,origin);}void print(int a[],int n){    if(a==NULL || n<0) return;    for(int i=0;i<n;i++){        cout<<a[i]<<" ";    }    cout<<endl;}int main(){    int tower1[6]={6,5,4,3,2,1};    int tower2[6]={0};    int tower3[6]={0};    print(tower3,6);    moveDisks(5,tower1,tower3,tower2);    print(tower3,6);}


0 0
原创粉丝点击