logo资料库

西北工业大学.docx

第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
资料共33页,剩余部分请下载后查看
N 皇后问题 #include #include #include void init(); void search(int); int canplace(int row,int col); int n; int count=0; int *a; void main() { init(); search(0); printf("%d\n"); } void init() { int i; scanf("%d",&n); a=(int *)malloc(sizeof(int)*n); for(i=0;i=n) count++; else { for(i=0;i
a[m]=i; search(m+1); a[m]=-1; } } } 搬桌子 #include #include int n,m; struct Desk { int start; int end; }*a; int *used; void sort() { int i,j,k; struct Desk temp; for(i=0;i
for(j=i+1;j=a[k].end &&used[j]==1) { used[j]=0; k=j; } } count++; } } return count; } void main() { int i; scanf("%d%d",&n,&m); a=(struct Desk *)malloc(sizeof(struct Desk)*m); used=(int *)malloc(sizeof(int)*m); for(i=0;i #include int n; int a[10][10]; int c[10]; int number=0,max=0; int fsd=0; int canplace(int row,int col) { int i,j; printf("\n\n****************** 第%d 次 *************\n\n",fsd++); if(fsd%10==0) system("pause"); for(i=0;i
{ for(j=0;j=0 && a[row][col]==0) row--; if(a[row][col]==-1 || row==-1) flag1=1; while(col>=0 && a[r][col]==0) col--; if(a[r][col]==-1 || col==-1) flag2=1; if(flag1&&flag2) return 1; else return 0; } void search(int m) { int r,c; r=m/n; c=m%n; if(m>=n*n) { if(number>max) max=number; } else { search(m+1); if(canplace(r,c)) { a[r][c]=1; number++; search(m+1); a[r][c]=0; number--;
} } } void main() { int i,j,k=0; char str[10]; scanf("%d",&n); getchar(); while(n!=0) { for(i=0;i #include int InputSrting(char a[][10]) { int i=0,j=0; char c; while((c=getchar())!='\n')
{ if(c!=' ') { a[i][j]=c; j++; } else { for(;j<10;j++) a[i][j]='\0'; i++; j=0; } } for(;j<10;j++) a[i][j]='\0'; return (i+1); } void copmareString(char a[][10],char b[][10],int alength,int blength)\ { int i,j; int flag=1; if(alength!=blength) { printf("No\n"); } else { for(i=0;i
{ } else { } printf("No\n"); printf("Yes\n"); } void main() { int i=0,j=0; int alength,blength; char a[100][10],b[100][10]; alength=InputSrting(a); blength=InputSrting(b); copmareString(a,b,alength,blength); } 防卫导弹 #include #include int n; int *a,*l; void main() { int i,j,max,x; scanf("%d",&n); a=(int *)malloc(sizeof(int)*n); l=(int *)malloc(sizeof(int)*n); for(i=0;i=0;i--) { max=0; for(j=i+1;jmax) max=l[j]; }
} l[i]=max+1; } max=0; for(i=0;imax) { max=l[i]; x=i; } } printf("\n"); printf("max=%d\n\n",max); printf("\n\n**********************打导弹的序列如下***********\n\n"); printf("%d ",a[x]); for(i=x+1;i #include int IsPrime(int n) { int i; int k=sqrt((double)n); for(i=2;i<=k;i++) if(n%i==0) return 0;
分享到:
收藏