简化判断过程的方法

若是不判断互异,转而判断各判断区域(一列、一行、3x3等)的各数字和为
\[1+2+3+\cdots+9=45\]
是否可行?
我感觉是可以的……下面给出我的代码,思路应该比较清晰……吧?……
```c++
#include <bits/stdc++.h>

using namespace std;

bool check()
{
int t[9][9];
for (int i = 0; i < 9; i++)
{
int all = 0;
for (int j = 0; j < 9; j++)
{
cin >> t[i][j];
all += t[i][j];
}
if(all != 45)
return false;
}
for (int i = 0; i < 9; i++)
{
int all = 0;
for (int j = 0; j < 9; j++)
{
all += t[j][i];
}
if(all != 45)
return false;
}
int x = 0, y = 0;
for (int i = 0; i < 9; i++)
{
int all = 0;
for (int j = x; j < x + 3; j++)
for (int k = y; k < y + 3; k++)
all += t[j][k];
if(all != 45)
return false;

if(x==6)
{
y += 3;
x = 0;
}
else
{
x += 3;
}
}
return true;
}

int main()
{
int c;
cin >> c;
for (int i = 0; i < c; i++)
{
if(check())
cout << "Right" << endl;
else
cout << "Wrong" << endl;
}

return 0;
}
```

0 条评论

目前还没有评论...

信息

ID
1335
难度
4
分类
模拟 点击显示
标签
递交数
3193
已通过
1461
通过率
46%
上传者