发信人: sunlightonriver(成吉思汗) 
整理人: wenbobo(2002-06-11 19:08:06), 站内信件
 | 
 
 
#define Number 8
 #include <stdio.h>
 #include <math.h>
 void main(void)
 {
 signed int Count=0,DismatchFlag=0,Current=0,Temp=0,_Current=0,MoveFlag=0;
 int Queen[Number]={0,0,0,0,0,0,0,0};
 Queen[0]=0;
 do{
 if(!MoveFlag) /*设置下一个王后。若此时是找到一种布局后的调整则不放下一个王后*/
 {
 Queen[++Current]=0;
 }
 MoveFlag=0; /*清除调整布局不放王后的标志*/
 do{
 for(Temp=Current-1;Temp>=0;Temp--) /*同已摆下王后的冲突判断*/
 {
 if(Queen[Current]==Queen[Temp]||(Current-Temp==abs(Queen[Current]-Queen[Temp]))||Queen[Current]>7) /*冲突条件*/
 {
 DismatchFlag=1; /*冲突标志*/
 break;
 }
 }
 if(DismatchFlag) /*冲突调整*/
 {
 if(Queen[Current]>=7) /*当前王后已到最后一列则清除该王后,上一个王后摆到下一列*/
 {
 Queen[Current--]=0;
 Queen[Current]++;
 DismatchFlag=0;
 }
 else /*没到最后一列则该王后摆到下一列*/
 {
 Queen[Current]++;
 DismatchFlag=0;
 }
 }
 else /*没冲突则结束该循环*/
 break;
 }while(1);
 if(Current==7) /*这是一种布局吗?*/
 {
 printf("now program found a setting.\n"); /*get a result;*/
 Count++;
 printf("%d\t%d\t%d\t%d\t",Queen[0],Queen[1],Queen[2],Queen[3]);
 printf("%d\t%d\t%d\t%d\t",Queen[4],Queen[5],Queen[6],Queen[7]);
 getchar();
 if(Queen[Current]==7) /*是一种布局则调整当前王后*/
 {
 Queen[--Current]++;
 MoveFlag=1;
 }
 else 
 {
 Queen[Current]++;
 MoveFlag=1;
 };
 }
 }while(!(Queen[0]==8)); /*历遍了所有布局吗?*/
 printf("now the Setting have %d type",Count);
 }
 
  ----  #include<爱情>
 (无结果)main(无付出)
 {
 if(没有爱的勇气)
 {请别来撩动我的心弦;让我把你从我记忆中格式化掉;}
 else
 {让我们爱他个天翻地覆and海枯石烂;}
 }
  | 
 
 
 |