⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shiyan4.cpp

📁 讲述回溯法的基本原理
💻 CPP
字号:
 #include   <iostream.h>
   
  struct   Direction{     
      int   x;   

      int   y;   
  };   
    
  int   a[8][8],   i_Counter=0;   

  void   test(   int   array[8][8],   int,   int);   
    
  int   main()   
  {   
      int   x,   y;   

      for(int   j=0;   j<8;   j++){   

          for   (int   k=0;   j<8;   j++){ 
			  
              a[j][k]=0;   
          }   
      }   
      cout<<"输入   X   and   Y:";   

      cin>>x>>y;   

      cout<<endl;   

      test(a,x,y);  
	  
      cin>>y;   

      return   0;   
  }   
    
  void   test(int   array[8][8],   int   i_CurrentX,   int   i_CurrentY   )   
  {   
      Direction   D[8]={{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};  
	  
      int   i_DesX=0,   i_DesY=0;   

      array[i_CurrentX][i_CurrentY]=1; 
	  
      for   (int   i=0;   i<8;   i++){
		  
          i_DesX=i_CurrentX+D[i].x;  
		  
          i_DesY=i_CurrentY+D[i].y;
		  
          if   ((i_DesX>=0)&&(i_DesX<8)&&(i_DesY>=0)&&(i_DesY<8)){   

                
              if   (array[i_DesX][i_DesY]==0){   

                  array[i_DesX][i_DesY]=1;   

                  i_CurrentX=i_DesX;   

                  i_CurrentY=i_DesY;   

                  test(array,i_CurrentX,i_CurrentY);  
				  
                  i_Counter++;   

                  cout<<i_Counter<<"move   to:"<<i_DesX<<"   "<<i_DesY<<"           "; 
				  
                  if   (i_Counter%3==0) 
					  
                      cout<<endl;  
				  
                  if   (i_Counter==63)
					  
                      cout<<"\n结束!";   
              }   
          }   
      }   
  }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -