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

    如下的10个格子

    填入0~9的数字。要求:连续的两个数字不能相邻。

    (左右、上下、对角都算相邻)

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

    请填写表示方案数目的整数。

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

    答案6 (15分)

    代码:

    #include <iostream>
    #include <algorithm>
    #include <cstdlib>
    #include <cstdio>
    using namespace std;
    int dir[10][4] = {1,3,4,5,2,4,5,6,5,6,-1,-1,
                      4,7,8,-1,5,7,8,9,6,8,9,-1,
                      9,-1,-1,-1,8,-1,-1,-1,9,-1,
                      -1,-1,-1,-1,-1,-1};
    bool check(int *a) {
        for(int i = 0;i < 10;i ++) {
            for(int j = 0;j < 4;j ++) {
                if(dir[i][j] != -1 && abs(a[i] - a[dir[i][j]]) == 1) return false;
            }
        }
        return true;
    }
    int main() {
        int c = 0;
        int a[10] = {0,1,2,3,4,5,6,7,8,9};
        do {
            if(check(a)) c ++;
        }
        while(next_permutation(a,a + 10));
        printf("%d",c);
    }
  • 相关阅读:
    5
    4
    3
    work02
    查看远程库信息(git remote的用法)
    隐藏的文件
    tag相关操作
    分支管理
    git 克隆分支
    git初始化操作
  • 原文地址:https://www.cnblogs.com/8023spz/p/10440573.html
Copyright © 2011-2022 走看看