欢迎来到天天文库
浏览记录
ID:59324733
大小:70.50 KB
页数:3页
时间:2020-09-05
《八皇后问题的实现(C语言).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、八皇后问题的实现(C语言)#include#defineN8 //定义棋盘的格数,通过改变,也可以是4皇后,16皇后,9皇后什么的.intchess[N][N]={0};//棋盘intcount=0;//有多少种放法intcanput(introw,intcol)//确定某一格能不能放{inti,j;for(i=0;i2、(chess[row][j]==1)//有同行的 { return0; } if(((i-row)==(j-col)3、4、(i-row)==(col-j))&&chess[i][j]==1)//对角线上有的 { return0; } }}return1;}voidprint_chess()//打印放置的方案{inti,j;for(i=0;i5、");}printf("");}intput(introw) //放置棋子,row是从哪一行开始,通常是0{intj,s;for(j=0;j6、t=count+1; print_chess(); chess[row][j]=0;//成功后,寻找下一种方法 continue; } s=put(row+1);//放置下一行的 if(s==0) //假如下一行不能放 { chess[row][j]=0;//那么这格是放错了的,清除 continue; //找本行的下一个方格 } else { break; } }}if(j==N) //如果这一行的每个空格都7、不能放置{ return0;//那么本行放置失败}else{ return1;//本行放置成功}}intmain(){ints;s=put(0);//放置printf("thenumberofputwayis%d",count);//打印信息return0;}
2、(chess[row][j]==1)//有同行的 { return0; } if(((i-row)==(j-col)
3、
4、(i-row)==(col-j))&&chess[i][j]==1)//对角线上有的 { return0; } }}return1;}voidprint_chess()//打印放置的方案{inti,j;for(i=0;i5、");}printf("");}intput(introw) //放置棋子,row是从哪一行开始,通常是0{intj,s;for(j=0;j6、t=count+1; print_chess(); chess[row][j]=0;//成功后,寻找下一种方法 continue; } s=put(row+1);//放置下一行的 if(s==0) //假如下一行不能放 { chess[row][j]=0;//那么这格是放错了的,清除 continue; //找本行的下一个方格 } else { break; } }}if(j==N) //如果这一行的每个空格都7、不能放置{ return0;//那么本行放置失败}else{ return1;//本行放置成功}}intmain(){ints;s=put(0);//放置printf("thenumberofputwayis%d",count);//打印信息return0;}
5、");}printf("");}intput(introw) //放置棋子,row是从哪一行开始,通常是0{intj,s;for(j=0;j6、t=count+1; print_chess(); chess[row][j]=0;//成功后,寻找下一种方法 continue; } s=put(row+1);//放置下一行的 if(s==0) //假如下一行不能放 { chess[row][j]=0;//那么这格是放错了的,清除 continue; //找本行的下一个方格 } else { break; } }}if(j==N) //如果这一行的每个空格都7、不能放置{ return0;//那么本行放置失败}else{ return1;//本行放置成功}}intmain(){ints;s=put(0);//放置printf("thenumberofputwayis%d",count);//打印信息return0;}
6、t=count+1; print_chess(); chess[row][j]=0;//成功后,寻找下一种方法 continue; } s=put(row+1);//放置下一行的 if(s==0) //假如下一行不能放 { chess[row][j]=0;//那么这格是放错了的,清除 continue; //找本行的下一个方格 } else { break; } }}if(j==N) //如果这一行的每个空格都
7、不能放置{ return0;//那么本行放置失败}else{ return1;//本行放置成功}}intmain(){ints;s=put(0);//放置printf("thenumberofputwayis%d",count);//打印信息return0;}
此文档下载收益归作者所有