[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);
}
}
}