zoukankan      html  css  js  c++  java
  • java实现第五届蓝桥杯六角填数

    六角填数

    题目描述
    如图【1.png】所示六角形中,填入1~12的数字。
    使得每条直线上的数字之和都相同。
    图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?

    请通过浏览器提交答案,不要填写多余的内容。
    在这里插入图片描述

    public class Hex_FillNum 
    {
    // 把12个格子放入数组
    static int arr[] = new int[12];
    
    // 数组标记,0为无,1为有
    static int flag[] = new int[12];
    
    // 放存每条直线的和
    static int sum[] = new int[6];
    
    public static void main(String[] args) 
    {
    //将已知的三个数赋值, 并且将这三个数进行标记,arr[5]为所求的数
    flag[0] = 1;
    arr[0] = 1;
    flag[7] = 1;
    arr[1] = 8;
    flag[2] = 1;
    arr[11] = 3;
    fun(0);
    }
    
    public static void fun(int x)
    {
    // 这个3个数为已知,直接跳过
    if(x==0 || x==1 || x==11)
    {
    fun(x+1);
    return;
    }
    
    // 格子放满,进行判断
    if(x>11)
    {
    // 每条线上的和
    sum[0] = arr[0] + arr[2] + arr[5] + arr[7];
    sum[1] = arr[0] + arr[3] + arr[6] + arr[10];
    sum[2] = arr[7] + arr[8] + arr[9] + arr[10];
    sum[3] = arr[1] + arr[5] + arr[8] + arr[11];
    sum[4] = arr[4] + arr[6] + arr[9] + arr[11];
    sum[5] = arr[1] + arr[2] + arr[3] + arr[4];
    
    // 若每条线上的和相等
    if(sum[0]==sum[1] && sum[1]==sum[2] && sum[2]==sum[3] && sum[3]==sum[4] && sum[4]==sum[5] && sum[5] == sum[0])
    System.out.println(arr[5]);
    return;
    }
    
    // 为格子赋值
    for(int i=0; i<arr.length; i++)
    {
    if(flag[i] == 0)
    {
    flag[i] = 1;
    arr[x] = i+1;
    fun(x+1);
    flag[i] = 0;
    }
    }
    }
    }
    
    
  • 相关阅读:
    input框限制0开头的数字(0除外)
    圆角头像----CSS3特效
    html中div获取焦点,去掉input div等获取焦点时候的边框
    一些常用的html css整理--文本长度截取
    html5本地存储
    div块级元素获取焦点
    Intellij IDEA 搜索文件内容
    web安全漏洞防护
    Intellij IDEA 自动生成 serialVersionUID
    mysql 年龄计算(根据生日)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077346.html
Copyright © 2011-2022 走看看