[1][2][3]
[4][5][6]
[7][8][9]
只要知道[1],[3]此矩陣就決定了([5]=5)
可以放在[1]位置的有2,4,6,8一共4種
當[1]=2時可以放在[3]位置的有4,6一共2種
所以共有4x2=8種
[1][3]位置的組合共有此八種
(2,2)no,(2,4),(2,6),(2,8)no
(4,2),(4,4)no,(4,6)no,(4,8)
(6,2),(6,4)no,(6,6)no,(6,8)
(8,2)no,(8,4),(8,6),(8,8)no
magic(int n,int m)那邊應該可以寫的漂亮一點...
複製程式
#include<stdio.h>
#include<stdlib.h>
void magic(int n,int m){
int a[10],i;
a[1]=n;a[9]=10-n;
a[2]=15-m-n;a[8]=10-a[2];
a[3]=m;a[7]=10-m;
a[4]=15-a[1]-a[7];
a[5]=5;
a[6]=10-a[4];
for(i=1;i<=9;i++){
printf("%d",a[i]);
if((i%3)==0)printf("\n");
}
printf("\n");
}
int main()
{
int i,j;
for(i=2;i<=8;i=i+2){
for(j=2;j<=8;j=j+2){
if(i!=j&&(i+j)!=10)
magic(i,j);
}
}
}