题目


解法
package august21;
public class 六角填数 {
static int[]a={2,4,5,6,7,9,10,11,12};
static int ans=0;
public static void main(String[] args) {
f(0);
}
public static void f(int k)
{
if(k==9)
{
if(a[0]+1+a[8]+a[4]==1+a[1]+a[3]+a[7]&&1+a[1]+a[3]+a[7]==a[4]+a[5]+a[6]+a[7]&&8+a[0]+a[1]+a[2] ==a[2]+a[3]+a[6]+3&& a[2]+a[3]+a[6]+3 == 3+a[5]+a[8]+8&&a[2]+a[3]+a[6]+3== a[0]+1+a[8]+a[4] )
{
System.out.println(a[8]);
System.out.println(a[1]);
System.out.println(a[2]);
}
}
for(int i=k;i<9;i++)
{
int t=a[k];a[k]=a[i];a[i]=t;
f(k+1);
t=a[k];a[k]=a[i];a[i]=t;
}
}
}
本文深入探讨了一种名为六角填数的算法问题,通过递归和回溯的方法,寻找符合条件的数字填充方案,确保六个方向上的数字总和相等。文章提供了完整的Java代码实现,展示了如何使用特定的数字集合完成这一挑战。
1万+

被折叠的 条评论
为什么被折叠?



