zoukankan      html  css  js  c++  java
  • 方格填数


    方格填数

    如下的10个格子
    +--+--+--+
    | | | |
    +--+--+--+--+
    | | | | |
    +--+--+--+--+
    | | | |
    +--+--+--+

    (如果显示有问题,也可以参看【图1.jpg】)

    填入0~9的数字。要求:连续的两个数字不能相邻。
    (左右、上下、对角都算相邻)

    一共有多少种可能的填数方案?

    请填写表示方案数目的整数。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

    public class Main {
        static int count;
        public static void main(String[] args) {
            int[] a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
            dfs(a, 0);
            System.out.println(count);
        }
        private static void dfs(int[] a, int k) {
            if(k == a.length - 1) {
                if(Math.abs(a[0] - a[1]) != 1 && Math.abs(a[0] - a[3]) != 1 && Math.abs(a[0] - a[4]) != 1 && Math.abs(a[0] - a[5]) != 1
                        && Math.abs(a[1] - a[2]) != 1 && Math.abs(a[1] - a[4]) != 1 && Math.abs(a[1] - a[5]) != 1 && Math.abs(a[1] - a[6]) != 1
                        && Math.abs(a[2] - a[5]) != 1 && Math.abs(a[2] - a[6]) != 1
                        && Math.abs(a[3] - a[4]) != 1 && Math.abs(a[3] - a[7]) != 1 && Math.abs(a[3] - a[8]) != 1
                        && Math.abs(a[4] - a[5]) != 1 && Math.abs(a[4] - a[7]) != 1 && Math.abs(a[4] - a[8]) != 1 && Math.abs(a[4] - a[9]) != 1
                        && Math.abs(a[5] - a[6]) != 1 && Math.abs(a[5] - a[8]) != 1 && Math.abs(a[5] - a[9]) != 1
                        && Math.abs(a[6] - a[9]) != 1
                        && Math.abs(a[7] - a[8]) != 1
                        && Math.abs(a[8] - a[9]) != 1) {
                    System.out.println("  " + a[0] + " " + a[1] + " " + a[2]);
                    System.out.println(a[3] + " " + a[4] + " " + a[5] + " " + a[6]);
                    System.out.println(a[7] + " " + a[8] + " " + a[9]);
                    count ++;
                    return;
                }
            }
            for(int i = k; i < a.length; i ++) {
                {
                    int x = a[k];
                    a[k] = a[i];
                    a[i] = x;
                }
                dfs(a, k + 1);
                {
                    int x = a[k];
                    a[k] = a[i];
                    a[i] = x;
                }
            }
        }
    }
  • 相关阅读:
    斐波那契(通项公式)
    数论--欧几里得定理(求最大公约数)
    5790 素数序数(筛素数版)
    数论--筛法求素数
    2491 玉蟾宫
    闭包详解
    ASP.NET 页生命周期概述1
    IIS 7.0 的 ASP.NET 应用程序生命周期概述
    IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期概述
    WeUI logo专为微信设计的 UI 库 WeUI
  • 原文地址:https://www.cnblogs.com/jizhidexiaobai/p/8576031.html
Copyright © 2011-2022 走看看