1-9,九个数填入3*3的格子中,使每行每列总和相同

2024-01-22 19:38

本文主要是介绍1-9,九个数填入3*3的格子中,使每行每列总和相同,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <iostream>
using namespace std;int a[3][3];
int sum;//判断九宫格内每个数字各不相同
bool test(int x,int y,int n){a[x][y]=n;for(int i=0;i<3;i++){for(int j=0;j<3;j++){if(a[i][j]==n){if(i!=x||j!=y)return false;}}}return true;
}//判断每行每列之和相等
bool test2(int a[3][3]){int sum=0;for(int i=0;i<3;i++){int sum1=a[0][i]+a[1][i]+a[2][i];int sum2=a[i][0]+a[i][1]+a[i][2];if(sum1!=sum2)return false;if(sum==0)sum=sum1;if(sum1!=sum||sum2!=sum)return false;}return true;
}bool dfs(int depth){if(depth>=9){if(test2(a))return true;elsereturn false;}int x,y;x=depth/3;y=depth%3;if(a[x][y]!=0)return dfs(depth+1);for(int i=1;i<10;i++){a[x][y]=i;if(test(x,y,i)){if(dfs(depth+1))return true;}a[x][y]=0;}return false;}int main()
{if(dfs(0)){for(int i=0;i<3;i++){for(int j=0;j<3;j++){cout<<a[i][j]<<' ';}cout<<endl;}}return 0;
}

这篇关于1-9,九个数填入3*3的格子中,使每行每列总和相同的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/634041

相关文章

相同的生命周期

1.保证相同的生命周期 bool GameOverLayer::init()   {       if (CCLayerColor::initWithColor(ccc4(0, 255, 0, 255))){              _label = CCLabelTTF::create("word", "Artial", 40);              CCSize size = CC

路经总和-二叉树题

112. 路径总和 - 力扣(LeetCode) 1、用队列 两个队列,先进先出 node队列存节点; sum队列存每条路径走到这个节点的val的总和; 节点和总和对应着同时存入队列,同时出队列; class Solution {public:bool hasPathSum(TreeNode* root, int targetSum) {if(root == nullptr)re

day16--513.找树左下角的值+112. 路径总和+106.从中序与后序遍历序列构造二叉树

一、513.找树左下角的值 题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/ 文章讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 视频讲解:https://www

194.回溯算法:组合总和||(力扣)

代码解决 class Solution {public:vector<int> res; // 当前组合的临时存储vector<vector<int>> result; // 存储所有符合条件的组合// 回溯函数void backtracing(vector<int>& candidates, int target, int flag, int index, vector<bool>&

193.回溯算法:组合总和(力扣)

代码解决 class Solution {public:vector<int> res; // 当前组合的临时存储vector<vector<int>> result; // 存储所有符合条件的组合// 回溯函数void backtrcing(vector<int>& nums, int target, int flag, int index) {// 如果当前组合的和超过了目标值,则返

JSP 四个作用域及九个内置对象

page:      当前页有效(跳转页面后该对象失效) session     会话有效(包括转发和跳转,forword/redirect)一个IP从头到尾有效 application    整个应用程序都一直有效 request           一次请求有效   Jsp脚本中包含9个内置对象,这9个内置对象都是servletapi接口的实例,只是jsp规范对他们进行了默认的初始化

刷代码随想录有感(112):动态规划——组合总和IV

题干: 代码: class Solution {public:int combinationSum4(vector<int>& nums, int target) {vector<int>dp(target + 1, 0);dp[0] = 1;for(int j = 0; j <= target; j++){for(int i = 0; i < nums.size(); i++){if(

TCP 和 UDP 可以同时绑定相同的端口吗?

在网络编程中,TCP和UDP都可以绑定到同一个端口上进行通信。TCP和UDP是OSI模型中的传输层协议,它们分别使用不同的端口号来区分不同的应用程序或服务。 TCP(Transmission Control Protocol)提供了面向连接的、可靠的传输服务,它使用三次握手建立连接,并通过确认、重传、窗口控制等机制保证数据的可靠传输。 UDP(User Datagram Protocol)提供

在MySQL中基本认为schema和数据库相同,也就是说schema的名称和数据库的实例的名称相同,一个数据库有一个schema。

在SQL环境下,schema就是数据库对象的集合,所谓的数据库对象也就是常说的表,索引,视图,存储过程等。 在schema之上的,就是数据库的实例,也就是通常create databases获得的东西。也就是说一个schema 实例 可以有多个schema, 可以给不同的用户创建不同的schema,并且他们都是在同一数据库实例下面。 在MySQL中基本认为schema和数据库相同,也就是

Studying-代码随想录训练营day16| 513找到左下角的值、112.路径总和、106从中序与后序遍历序列构造二叉树

第十六天,二叉树part03💪💪💪,编程语言:C++ 目录 513找到左下角的值 112.路径总和 113.路径总和II 106从中序与后序遍历序列构造二叉树  105.从前序与中序遍历序列构造二叉树  总结  513找到左下角的值 文档讲解:代码随想录找到左下角的值 视频讲解:手撕找到左下角的值 题目: 学习:注意是找到最底层最左边的值,而不是找到最左边