思路:先将初始数字找出来,然后对每种方向都计算,最后直接引用输出
#include<iostream>
using namespace std;
int main(){
int x,y,a[4][4]={0},f[10]={0},w[9]={0};
int t[25]={0,0,0,0,0,0,10000,36,720,360,80,252,108,72,54,180,72,180,119,36,306,1080,144,1800,3600};
for(int i=1;i<4;i++){
for(int j=1;j<4;j++){
cin>>a[i][j];
f[a[i][j]]=1;
if(a[i][j]==0){
x=i;
y=j;
}
}
}
for(int k=1;k<10;k++)if(f[k]==0)a[x][y]=k;
for(int i=0;i<3;i++){
cin>>x>>y;
cout<<a[x][y]<<endl;
}
for(int i=1;i<4;i++){
for(int j=1;j<4;j++){
w[i]+=a[i][j];
w[j+3]+=a[i][j];
if(i==j)w[7]+=a[i][j];
if(i+j==4)w[8]+=a[i][j];
}
}
cin>>x;
cout<<t[w[x]];
return 0;
}