九宫格

来源:互联网 发布:淘宝运营骗局 编辑:程序博客网 时间:2024/04/29 19:31

问题

将数字 1 …9 填入一个 3×3 的九宫格中,使得格子中每一横行和的值全部相等,每一竖列和的值全部相等。请你计算有多少种填数字的方案


答案

72


思路

还是用全排列做


实现代码

#include <iostream>using namespace std;int main() {    int a[9]={1,2,3,4,5,6,7,8,9};    int x[3][3];    int pp=0;    do {        int u=0;        for (int i=0;i<3;i++) {            for (int j=0;j<3;j++) {                x[i][j]=a[u];                u++;            }        }        int sum1=x[0][0]+x[0][1]+x[0][2];        int sum2=x[1][0]+x[1][1]+x[1][2];        int sum3=x[2][0]+x[2][1]+x[2][2];        int sum4=x[0][0]+x[1][0]+x[2][0];        int sum5=x[0][1]+x[1][1]+x[2][1];        int sum6=x[0][2]+x[1][2]+x[2][2];        if (sum1==sum2 &&sum1==sum3 &&sum2==sum3 &&sum4==sum5 &&sum4==sum6 && sum5==sum6) {            pp++;        }    } while (next_permutation(a, a+9));    printf("%d",pp);}
0 0
原创粉丝点击