sj_4.c

来自「自己做的常用库和实现的数据结构。public domain.」· C语言 代码 · 共 47 行

C
47
字号

int b[22];
long int count=0;
static int a[21][8];
static int s[12]={1,3,5,7,11,13,17,19,23,29,31,37};
fun(int i,int k)
{int j,flag,p;
for(j=1;a[i][j]!=0;++j)
 {
 flag=1;
 for(p=1;p<=k && flag==1 ;++p)
    if(b[p]==a[i][j])
    flag=0;
  if(flag==1)
  {b[++k]=a[i][j];
   if(k!=20) fun(a[i][j],k);
   else
   {flag=0;
    for(p=0;p<=11 && flag==0 ;++p)
      if(b[k]+b[1]==s[i]) flag=1;
    if(flag==1) {print();++count;}
   }
   --k;
  }
 }
}

 print()
{int i;
for(i=1;i<=20;++i)
  printf("%3d",b[i]);
printf("\n");
}

main()
{int i,j,m;
for(i=1;i<=20;++i)
 {m=0;
 for(j=0;j<=11;++j)
  if ( (s[j]-i<=20) && (s[j]-i>0)) a[i][++m]=s[j]-i;
 }
b[1]=9;
fun(9,1);
printf("\ncount=%ld\n",count);
}

⌨️ 快捷键说明

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