zoukankan      html  css  js  c++  java
  • [原创]9宫格填数字

    题目大意:

          给你一个九宫格,每个格子只能填1--9这九个数字并且不能重复,题目给你每一行每一列三个数字之和,问一共有多少种可行的方法?

    解题思路:

          其实就是一道简单的搜索题,用一个k标记选取数的个数,具体见代码:

    AC代码:

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<algorithm>
    #include<string.h>
    #include<math.h>
    using namespace std;
    int sum,a1,b,c,d,e,f,g;
    int a[10];
    int judge()
    {
        if((a[0]+a[1]+a[2])==a1&&(a[3]+a[4]+a[5])==b&&(a[6]+a[7]+a[8])==c&&(a[0]+a[3]+a[6])==d&&(a[1]+a[4]+a[7])==e&&(a[2]+a[5]+a[8])==f)
          return 1;
        else return 0;
    }
    void dfs(int a[],int k)
    {
        int i,t;
        if(k>=9)
        {
            if(judge()) sum++;
        }
        for(i=k;i<9;i++)
        {
            t=a[k];a[k]=a[i];a[i]=t;
            dfs(a,k+1);
            t=a[k];a[k]=a[i];a[i]=t;
        }
    }
    int main()
    {
        while(scanf("%d%d%d%d%d%d",&a1,&b,&c,&d,&e,&f)!=EOF)
        {
            for(int i=1;i<=9;i++)
            {
                a[i-1]=i;
            }
            sum=0;
            dfs(a,0);
            printf("%d
    ",sum);
        }
        return 0;
    }
  • 相关阅读:
    Swap Nodes in Pairs
    Permutations(copy)
    Sort Colors
    Merge Two Sorted Lists
    Implement Queue using Stacks
    Best Time to Buy and Sell Stock
    Happy Number
    Gray Code
    springMVC初次搭建,产生错误
    JSP常用指令
  • 原文地址:https://www.cnblogs.com/gaojupeng/p/4439508.html
Copyright © 2011-2022 走看看