资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
4 9 2
3 5 7
8 1 6
1
数据规模和约定
输入1-9这9个数字的一种任意排序。
解题思路:
这道题目思路很清晰,就是如何判断是否相等的问题上可能需要一些技巧,这里我直接用数组的形式,在输入的时候顺便计算了各行各列对角线的和,然后最后再通过for循环进行判断,代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[3][3];
int line[3] = {0};
int row[3] = {0};
int l[2] = {0};
int main(){
for(int i = 0 ; i < 3; i ++){
for(int j = 0; j < 3; j ++){
cin >> a[i][j];
line[i] += a[i][j];
row[j] += a[i][j];
if(i == j){
l[0] += a[i][j];
}
if(i + j == 2){
l[1] += a[i][j];
}
}
}
int temp = l[0];
bool flag = true;
if(temp == l[1]){
for(int i = 0; i < 3; i++){
if(temp == line[i] && temp == row[i]){
continue;
}else{
flag = false;
break;
}
}
}
if(flag){
cout << "1";
}else{
cout << "0";
}
return 0;
}