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;
    }
    }
    }
    }
    
    
  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947556.html
Copyright © 2011-2022 走看看