1 条题解
- 
  0
C++ :
#include <bits/stdc++.h> using namespace std; //路径总数和路径 int a[100][100],t=0; //四种移动规则 int x[4]={2,1,-1,-2},y[4]={1,2,2,1}; //输出结果 void print(int n) { t++; cout<<t<<":"; for(int i=1;i<n;i++){ cout<<a[i][1]<<","<<a[i][2]<<"->"; } cout<<"4,8"<<endl; } //递归回溯 void search(int k) { //往4个方向跳 for (int i=0;i<=3;i++){ //判断马不越界 if (a[k-1][1]+x[i]>=0&&a[k-1][1]+x[i]<=4 &&a[k-1][2]+y[i]>=0&&a[k-1][2]+y[i]<=8){ //保存当前马的位置 a[k][1]=a[k-1][1]+x[i]; a[k][2]=a[k-1][2]+y[i]; if (a[k][1]==4&&a[k][2]==8){ print(k); }else{ search(k+1);//搜索下一步 } } } } int main(){ a[1][1]=0; a[1][2]=0; //从坐标(0,0)开始往右跳第二步 search(2); } 
- 1
 
信息
- ID
 - 2282
 - 时间
 - 1000ms
 - 内存
 - 16MiB
 - 难度
 - (无)
 - 标签
 - 递交数
 - 0
 - 已通过
 - 0
 - 上传者