prince.c

来自「c++序列」· C语言 代码 · 共 50 行

C
50
字号
/*
ID: perfect2
PROG: beads
*/
#include <stdio.h>
#include <math.h>
int n;
int x[14];
int place(int k)
{
	int i,j;
    j=1;
    for(i=1;i<k;i++)
        if((x[i]==x[k])||(abs(x[i]-x[k])==abs(i-k)))
		{
			j=0;
			break;
		}
    return j;
}
int main()
{
	int j,l=1,k=1;
     x[1]=0;
	 FILE *in=fopen("checker.txt","r");
	 FILE *out=fopen("checker.out","w");
	 fscanf(in,"%d",&n);
     while(k>0)
	 {
		 x[k]=x[k]+1;
         while((x[k]<=n)&&(!place(k)))
         x[k]=x[k]+1;
         if(x[k]<=n)
		 {
	          if(k==n)
			  {
	              if(l<=3)
				  { 
	                  for(j=1;j<n;j++)
                      fprintf(out,"%d ",x[j]);
		              fprintf(out,"%d\n",x[j]);
				  }
                  l=l+1;
			  }
		      else{k=k+1;x[k]=0;}
		 }
         else k=k-1;
	 }
	 fprintf(out,"%d\n",l);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?