7-167 数独简化版

数独是有趣的数学游戏,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、9个3*3的小方格内的数字均含1-9,不重复。但是为了简化题目,本题的数独只需要满足前两个要求即可。

即在本题中对于每一个数独(9*9):

1:每一行包含1-9。
2.每一列包含1-9。

输入格式:

9行9列,仅包含数字0-9。注意:0并不代表该数独位置的数字为0,而是该位置数字未知。每个测试样例仅包含一个未知数字。

输出格式:

输出满足题目要求的未知的那个数字。如果该处填写任何数字均不满足题目所描述的数独,则输出NO。

输入样例:

1 4 9 8 3 6 7 5 2
5 7 6 2 4 1 9 3 8
2 3 8 5 7 9 1 6 4
7 2 4 3 6 8 5 9 1
6 8 3 9 1 5 4 2 7
9 5 1 4 2 7 3 8 6
3 6 2 7 9 4 8 1 5
4 1 5 6 8 3 2 7 9
8 9 7 1 5 2 0 4 3

输出样例:

6

解释:将6填入0的位置中,这就是满足题目要求的正确数独。

输入样例:

1 4 9 8 3 6 7 5 2
5 7 6 2 4 1 9 3 8
2 3 8 5 7 9 1 6 4
7 2 4 3 6 8 5 9 1
6 8 3 9 1 5 4 2 7
9 5 1 4 2 7 3 8 6
3 6 2 7 9 4 8 1 5
4 1 5 6 8 3 2 7 9
8 9 7 1 5 2 0 4 4

输出样例:

NO

解释:最后一行有两个4,不满足数独每一行每一列不重复原则。

#include <stdio.h>int main() {// 第一步输入数组并找到为0的下标int arr[9][9], row, col;for (int i = 0; i < 9; ++i) {for (int j = 0; j < 9; ++j) {scanf("%d", &arr[i][j]);if (arr[i][j] == 0) {row = i;col = j;}}}// 判断每行数据是否有数据重复for (int i = 0; i < 9; ++i) {int arr_row[9];for (int j = 0; j < 9; ++j) {arr_row[j] = arr[i][j];}// 排序for (int j = 0; j < 8; ++j) {int min = arr_row[j], index = 0;for (int k = 0; k < 9; ++k) {if (min > arr_row[k]) {min = arr_row[k];index = k;}}if (index) {int temp = arr_row[j];arr_row[j] = arr_row[index];arr_row[index] = temp;}}for (int j = 0; j < 8; ++j) {if (arr_row[j] == arr_row[j + 1]) {printf("NO");return 0;}}}// 判断每列数据是否有数据重复for (int i = 0; i < 9; ++i) {int arr_col[9];for (int j = 0; j < 9; ++j) {arr_col[j] = arr[j][i];}// 排序for (int j = 0; j < 8; ++j) {int min = arr_col[j], index = 0;for (int k = 0; k < 9; ++k) {if (min > arr_col[k]) {min = arr_col[k];index = k;}}if (index) {int temp = arr_col[j];arr_col[j] = arr_col[index];arr_col[index] = temp;}}for (int j = 0; j < 8; ++j) {if (arr_col[j] == arr_col[j + 1]) {printf("NO");return 0;}}}// 遍历行/列求和int sum_row = 0;for (int i = 0; i < 9; ++i) {sum_row += arr[row][i];}int sum_col = 0;for (int i = 0; i < 9; ++i) {sum_col += arr[i][col];}if (sum_row == sum_col) {printf("%d", 45 - sum_row);} else {printf("NO");}return 0;
}

思路

- 这种题说难不难,说简单不简单
- 我采用的方法是判断行列数据是否有重复,如果没有重复,计算值是否相等就能得出是否有解
- 如果有解用45减去行或者列的和即可,因为45就是从1+2+3..+9的值,所以减去就能得出剩下的那个值
- 否则输出NO

7-167 数独简化版相关推荐

  1. 数独简化版 (set去重)

    数独是有趣的数学游戏,玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.9个3*3的小方格内的数字均含1-9,不重复.但是为了简化题目,本题的数独只需要满足前两个要求 ...

  2. 一次Java解析数独的经历,java面试题,java高级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 1. ...

  3. C语言学习 数独游戏

    摘要:花了1周多时间学习了C语言,开始练手写解数独游戏的程序. C语言学习 数独游戏 作者:乌龙哈里 时间:2015-11-22 平台:Window7 64bit,TCC 0.9.26(x86-64 ...

  4. 手写简化版printf函数

    2019.02.01更新:经同学提醒,myprintf函数应有返回值为输出的字符数. 期末的大作业,手写一个myprintf函数,支持如下一些操作. 也就是  % -(负号控制左右对齐) 数(控制字段 ...

  5. 黑马程序员---java算法实现输出任意奇数维数独

    java算法实现输出任意奇数维数独 ----------- android培训.java培训.java学习型技术博客.期待与您交流! ----------- /** 该类可以打印任意维数数独,但是必须 ...

  6. python解5x5数独

    5x5数独要求每行每列都不能重复,且必须包含1-5,简化版的9x9数独. def print_grid(arr):for i in range(5):for j in range(5):# 注意,在p ...

  7. codevs 2924 数独挑战 x(三种做法+超详细注释~)

    2924 数独挑战  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamond 题目描述 Description "芬兰数学家因卡拉,花费3个月时间设计出了世界 ...

  8. 阿里巴巴新零售数据库设计(简化版)

    阿里巴巴新零售数据库设计(简化版) 语雀地址:https://www.yuque.com/gavincoder/ngs5gi/upkm1p#WXQOv ![image.png](https://img ...

  9. java解数独_java解数独

    先输入要解的数独,采用多维数组来保存其中的值,未填数字的地方,初始化为0,然后采用递归的方法来解数独. 直接上代码: /*** *@authorwalker **/ public classSudok ...

最新文章

  1. AI一分钟 | 特朗普以国家安全为由否决博通收购高通;阿里发起时尚AI算法大赛
  2. 覆盖近2亿篇论文还免费!沈向洋旗下团队「读论文神器」登B站热搜
  3. Linux 普通进程 后台进程 守护进程(转)
  4. 解决mysql“Access denied for user root@localhost”
  5. Ardino基础教程 3_流水灯
  6. 一个垃圾分类项目带你玩转飞桨(1)
  7. 三星r750美版刷Android,这是才是全面派 三星space monitor详解
  8. 警告提示:No archetype found in remote catalog. Archetype not found in any catalog
  9. RabbitMQ六种队列模式-简单队列模式
  10. 2021-08-08
  11. select选中的值_selenium下拉框处理(select)
  12. hdu 2082 找单词(母函数)
  13. .net remoting的事务传播以及wcf分布式事务
  14. 如何打印网页版的发票_纸质发票将消失,电子发票如何报销、打印、收集?这一篇就够了...
  15. SpringBoot之安装H2数据库
  16. 我对秒杀在技术性上的一些看法
  17. 苹果台式机忘记开机密码怎么办
  18. python找最大值的函数_python求最大值
  19. 如何从mac拷贝文件到NTFS格式的移动硬盘
  20. Leetcode 208、实现Trie(前缀树)

热门文章

  1. Linux下如何将源文件逐步编译成目标文件的过程
  2. JAX-WS Customization
  3. 哔哩哔哩:笔试题(20190910)
  4. pandas导出excel表格时报错:ValueError: No engine for filetype: ‘‘
  5. 微信小程序获取dom信息
  6. 反垄断案败诉,App Store高达30%的苹果税要降了?
  7. 如何使用红杏的公益代理
  8. 桂林师范高等专科学校计算机专业,2017年桂林师范高等专科学校的计算机技术专业广西文科生275分能录取吗...
  9. 基于SSM家庭在线记账管理系统
  10. Arxiv论文速览--LAformer: Trajectory Prediction for Autonomous Driving with Lane-Aware Scene Constraints