宿題見てやるよ
■ このスレッドは過去ログ倉庫に格納されています
0022デフォルトの名無しさん
NGNG#include <stdio.h>
#define SQ 3 //一辺
#define COUNT SQ*SQ
int flag=0xFFFF,x[COUNT];
void foo(int d){
int i,j,a,b;
if (d==COUNT){
for ( i=a=0; i<SQ; i++) a+=x[i];
for ( i=b=0; i<SQ; i++) b+=x[i*(SQ+1)]; if (b!=a)return;
for ( i=b=0; i<SQ; i++) b+=x[(SQ-1)*(1+i)];if (b!=a)return;
for ( j=0; j<SQ; j++){
for( i=b=0; i<SQ; i++) b+=x[i+SQ*j]; if(b!=a)return;
for( i=b=0; i<SQ; i++) b+=x[i*SQ+j]; if(b!=a)return;
}
for (i=0;i<COUNT;i++)
{
printf("%d",x[i]);
if (i%SQ==SQ-1) printf(" ");
}
printf("\n");
return;
}
for (i=0;i<COUNT;i++)
if (flag & (1<<i) ){
flag &= ~( 1<<i );
x[d]=i;
foo(d+1);
flag |= (1<<i);
}
}
void main(){
foo(0);
}
■ このスレッドは過去ログ倉庫に格納されています