您的位置:首页 > 其它

中过象棋棋盘一半 马踏日 从(1,1)出发只能向右踏出,到(m,n)有多少路径

2017-02-27 19:19 579 查看
# include<stdio.h>
# include<math.h>
# define M 9
# define N 5
int a[10]={1},b[10]={1},sum=0,m,p;//a[]存储横坐标,b[]存储纵坐标
int check(int n){

if((a
-a[n-1]==1&&abs(b
-b[n-1])==2)||(a
-a[n-1]==2&&abs(b
-b[n-1])==1)){
return 1;}//合法
else return 0;//不合法
}
void put(int n){
int i,j;
for(i=1;i<=M;i++){
for(j=1;j<=N;j++){
a
=i;
b
=j;
if(check(n)){
if(a
==m&&b
==p) sum++;
else put(n+1);
}
}
}
}
int main(){
scanf("%d%d",&m,&p);
put(1);
printf("%d\n",sum);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐