zoukankan      html  css  js  c++  java
  • 马遍历棋盘路径数量

    // 马走棋盘.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include<iostream>
    int maze[8][8],n,x,y; //x,y开始坐标,n维数
    int mx[8]={-2,-2,-1,1,2,2,1,-1};//方向
    int my[8]={-1,1,2,2,1,-1,-2,-2};
    int cnt=0;//记录路径数量
    bool check(int x,int y)
    {
    return (maze[x][y]==0&&x>=0&&x<n&&y<n&&y>=0);
    }
    void travel(int x,int y, int number)
    {
    int i,j;
    if(!check(x,y)) return; //判断x,y是否在棋盘中且未走过
    maze[x][y]=number;
    if(number==n*n) //走完,打印路径
    {
    for(i=0;i<n;i++)
    {
    for(j=0;j<n;j++)
    printf("%d ",maze[i][j]);
    printf("\n");
    }
    printf("\n");
    cnt++;
    }
    else
    {
    for(i=0;i<8;i++)
    {
    travel(x+mx[i],y+my[i],number+1); //递归调用
    }

    } maze[x][y]=0;
    }
    int main()
    {
    while(scanf("%d%d%d",&x,&y,&n)!=EOF)
    {
    memset(maze,0,sizeof(maze));
    cnt=0;
    travel(x-1,y-1,1);
    printf("%d\n",cnt);
    }
    return 0;
    }
  • 相关阅读:
    c++笔记3
    c++笔记2
    c++笔记1
    零点追踪(零点及量程补偿)
    优秀软件:
    Hart协议
    RL_RTX函数
    keil-rtx
    电源模块选型
    RTX51 Tiny
  • 原文地址:https://www.cnblogs.com/bersaty/p/2365400.html
Copyright © 2011-2022 走看看