杭电1016 2010-12-11 09:54

来源:互联网 发布:java循环结构 编辑:程序博客网 时间:2024/06/04 20:36
#include<stdio.h>
#define N 20
int juzhen[N+1][N+1],shuchu[N+1],kz[N+1],flag,num,sushu[41];
void fun(int row,int n){
 int i,j;
 if(num==n && sushu[shuchu[num]+1]){
  for(i=1;i<=n;i++){
   if(i==1)
    printf("%d",shuchu[i]);
   else
    printf(" %d",shuchu[i]); 
  }
  printf("\n");
 }
 for(i=1;i<=n;i++){
  if(juzhen[row][i] && sushu[row+i] && kz[i]){
   shuchu[++num]=i;
   kz[i]=0;
   fun(i,n);
   num--; kz[i]=1;    
  }
 
 }
}
int main()
{
 int i,j,n;
 flag=0;
 for(i=1;i<41;i++){
  sushu[i]=1;
 }
 for(i=2;i<41;i++)
  for(j=2;j<41/i;j++)
  sushu[i*j]=0;
 while(scanf("%d",&n)!=EOF){
 printf("Case %d:\n",++flag);
  for(i=1;i<=n;i++){
   for(j=1;j<=n;j++){
    if(i==j) juzhen[i][j]=0;
    else juzhen[i][j]=1;
   }
   kz[i]=1;
  }
  kz[1]=0;
  shuchu[1]=1;
  num=1;
  fun(1,n);
  printf("\n");
 }
return  0;
}

 

 

开始没仔细看要求提交竟然PE   在看了下提交AC