将数字 1…91 \ldots 91…9 填入一个 3×33 \times 33×3 的九宫格中,使得格子中每一横行和的值全部相等,每一竖列和的值全部相等。请你计算有多少种填数字的方案。
简单粗暴,暴力搜索
#include <stdio.h>
int main()
{
int a,b,c,d,e,f,g,h,i;
int sum=0;
for(a=1; a<=9; a++)
{
for(b=1; b<=9; b++)
{
if(b==a)
continue;
for(c=1; c<=9; c++)
{
if(c==a||c==b)
continue;
for(d=1; d<=9; d++)
{
if(d==a||d==b||d==c)
continue;
for(e=1; e<=9; e++)
{
if(e==a||e==b||e==c||e==d)
continue;
for(f=1; f<=9; f++)
{
if(f==a||f==b||f==c||f==d||f==e)
continue;
for(g=1; g<=9; g++)
{
if(g==a||g==b||g==c||g==d||g==e||g==f)
continue;
for(h=1; h<=9; h++)
{
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g)
continue;
for(i=1; i<=9; i++)
{
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)
continue;
if(a+b+c==d+e+f&&a+b+c==g+h+i && a+d+g==b+e+h&&a+d+g==c+f+i)
{
sum++;
}
}
}
}
}
}
}
}
}
}
printf("%d",sum);
return 0;
}
72