马踏棋盘问题

2016-02-19 13:27 3 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的马踏棋盘问题教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

#include stdio.h
  #define N 5
  void main(){
   int x,y;
   void horse(int i,int j);
   printf("Please input start position:");
   scanf("%d%d",&x,&y);
   horse(x-1,y-1);
  }
  void horse(int i,int j){
   int a[N][N]={0},start=0,
    h[]={1,2,2,1,-1,-2,-2,-1},
    v[]={2,1,-1,-2,2,1,-1,-2},
    save[N*N]={0},posnum=0,ti,tj,count=0;
   int jump(int i,int j,int a[N][N]);
   void outplan(int a[N][N]);
   a[i][j]=posnum+1;
   while(posnum=0){
    ti=i;tj=j;
    for(start=save[posnum];start8;++start){
     ti+=h[start];tj+=v[start];
     if(jump(ti,tj,a))
      break;
     ti-=h[start];tj-=v[start];
    }
    if(start8){
     save[posnum]=start;
     a[ti][tj]=++posnum+1;
     i=ti;j=tj;save[posnum]=0;
     if(posnum==N*N-1){
      //outplan(a);
      count++;
     }
    }
    else{
     a[i][j]=0;
     posnum--;
     i-=h[save[posnum>;j-=v[save[posnum>;
     save[posnum]++;
    }
   }
   printf("%5d",count);
  }
  int jump(int i,int j,int a[N][N]){
   if(iN&&i=0&&jN&&j=0&&a[i][j]==0)
    return 1;
   return 0;
  }
  void outplan(int a[N][N]){
   int i,j;
   for(i=0;iN;i++){
    for(j=0;jN;j++)
     printf("%3d",a[i][j]);
    printf("");
   }
   printf("");
   //getchar();
  }
  用回溯法得到所有的解,但效率较低,只能算出5行5列的。

来源:https://www.tulaoshi.com/n/20160219/1604368.html

延伸阅读
标签: 黄油 鸡蛋 烘焙
彩色玻璃饼干 1.将各色水果糖敲碎备用, 2.饼干在烘烤至最后的3分钟拿出来填上糖碎压平,放烤箱150度烤3分钟,取出后在烤盘上待凉了再移动,漂亮的玻璃饼干就完成了,多发挥你们的心思和创意,将它变得更漂亮点吧。 小诀窍 我的这几个饼干纯粹是试验品哈。 五彩饼干棒 1.花生米用刀按压成碎。锅中放水烧至有小泡泡,用手腕试下...
标签: 黄油 鸡蛋
负责任的说:这将是你吃过最好吃的饼干! 1.熟杏仁打磨成粉,也可以用其他坚果粉代替; 2.蛋白加糖到到干性发泡,就是成为固体状。 3.混合1+2,装进裱花袋或保险模,在铺锡纸的烤盘上挤成圆圈或其他形状。 4.烤箱预热,150度15分钟。 真的相当好吃,不试不知道哦! 猫爪饼干 1.黄油软化后加入糖,打到体积变大颜色变淡,加盐、低粉...
手绘蕾丝饼干 1、那么先从做饼干底开始:低粉65G,可可粉10G和泡打粉1/8茶匙混合过筛。 2、黄油32.5G室温软化后加糖粉35G打发。 3、分次加入全蛋液15G搅拌均匀。 4、筛入第一步的混合粉类。用翻拌和切拌的手法混合至没有干粉。我个人是不喜欢过度搅拌饼干面团的,所以一直是这样做。 5、把拌好的面团放进保鲜袋,冰箱冷藏1小时以上。 ...
怎么解决win7虚拟机无法识别U盘问题   1、首先运行虚拟机,然后依次点击查看工具栏--VM--Settings--Hardware,然后检查下Device栏目中有没有USB Controller,如果没有ADD的话那么就添加一个,有的话就继续点击它,然后查看右边是否都全部勾选,如下图所示; 2、如果看到第三项是灰色无法勾选的话,原因是因为USB的端口不够用...
标签: 黄油 鸡蛋
负责任的说:这将是你吃过最好吃的饼干! 1.熟杏仁打磨成粉,也可以用其他坚果粉代替; 2.蛋白加糖到到干性发泡,就是成为固体状。 3.混合1+2,装进裱花袋或保险模,在铺锡纸的烤盘上挤成圆圈或其他形状。 4.烤箱预热,150度15分钟。 真的相当好吃,不试不知道哦! 猫爪饼干 1.黄油软化后加入糖,打到体积变大颜色变淡,加盐、低粉...

经验教程

393

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部