毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++骑士巡游问题 第2页

更新时间:2011-5-21:  来源:毕业论文

#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>

int a[10][10];
int n;
int count=0;

void solve(int i,int j,int k,bool& ok){
 if(k>n*n){
  count++;
  ok=true;
  cout<<"第"<<count<<"种情况:"<<endl;
  for(i=0;i<n;i++){
   for(j=0;j<n;j++)
    cout<<setw(4)<<a[i][j];
   cout<<endl;
  }
  int m;
  cout<<"是否继续显示?1、继续   2、退出"<<endl;
  cin>>m;
  if(m==1) return;
  else if(m==2) exit(0);

  
 }
 if(!a[i][j]&&i>=0&&i<=n-1&&j>=0&&j<=n-1){//从八个方向判断骑士是不是能够走
  a[i][j]=k;
  
  solve(i-2,j-1,k+1,ok);
  if(ok){
   a[i][j]=0;
   ok=false;
   return;
  }
  solve(i-2,j+1,k+1,ok);
  if(ok){
   a[i][j]=0;
   ok=false;
   return;
  }
  solve(i-1,j-2,k+1,ok);
  if(ok){
   a[i][j]=0;
   ok=false;
   return;
  }
  solve(i-1,j+2,k+1,ok);
  if(ok){
   a[i][j]=0;
   ok=false;
原文请找腾讯752018766优,文-论'文.网http://www.youerw.com   if(ok){
   a[i][j]=0;
   ok=false;
   return;
  }
  solve(i+2,j-1,k+1,ok);
  if(ok){
   a[i][j]=0;
   ok=false;
   return;
  }
  solve(i+2,j+1,k+1,ok);
   a[i][j]=0;
   return;
 }
 else
  return;
}

int main(){
 int i,j;
 cout<<"输入正方形棋盘的横纵坐标数:";
 cin>>n;
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
   a[i][j]=0;
 int x,y;
 cout<<"请输入出发位置的坐标(x,y): ";
 cin>>x>>y;
 bool ok=false;
 solve(x-1,y-1,1,ok);
 if(!count)
  cout<<"情况个数:"<<count<<endl;
 else
  cout<<"该题无解!"<<endl;
 return 0;

上一页  [1] [2] 

C++骑士巡游问题 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。