九宫格问题,任意的输入9个数,写个代码判断是否可以横竖斜同于用一个数。可以的话给出代码看下

九宫格问题,任意的输入9个数,写个代码判断是否可以横竖斜同于用一个数。可以的话给出代码看下

假设你的九宫格放在一个二维数组中,那么可以这么写

 int sum[8];
for (int i = 0; i < 8; i++) sum[i] = 0;
for (i = 0; i < 3; i++)
{
    sum[0] += arr[0, i];
        sum[1] += arr[1, i];
        sum[2] += arr[2, i];
        sum[3] += arr[i, 0];
        sum[4] += arr[i, 1];
        sum[5] += arr[i, 2];
        sum[6] += arr[i, i];
        sum[7] += arr[i, 2-i];
}

int count = 3;
int sum = 0;
int array[][];//为输入的参数
//判断横竖
for(int i = 0; i < count; i++){
int tmpSum1 = 0;
int tmpSum2 = 0;
for(int j = 0; j < count; j++){
tmpSum += array[i][j];
tmpSum2 += array[j][i];
}
}
if(sum == 0){
sum =tmpSum;
}
if(sum != tmpSum1 || sum != tmpSum1) {
println("不相等");
break;
}
}
//判断斜线
int tmp1 = 0;
int tmp2 = 0;
for(int i = 0; i < count; i++){
tmp1 += array[i][i];
tmp2 += array[count-i][i];
}
if(sum != tmp1 || sum != tmp2) {
println("不相等");
break;
}

将数据保存到a[3][3]的数组中。

弄不明白问题中“横竖斜同于用一个数”是什么意思。