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
- 上传者