九宫格问题,任意的输入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]的数组中。
弄不明白问题中“横竖斜同于用一个数”是什么意思。