#include<bits/stdc++.h> using namespace std; const int maxn=110; double a[110][110],b[110]; double x[110],tmpx[110]; const double eps=1e-6; int main(){ double epsilon,sum; int k=0; int n;scanf("%d",&n); for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%lf",&a[i][j]); for(int i=0;i<n;i++) scanf("%lf",&b[i]) while(1){ epsilon=0; k++; for(int i=0;i<n;i++){ sum=0; for(int j=0;j<n;j++){ if(i==j) continue; sum+=a[i][j]*x[j]; } tmpx[i]=(b[i]-sum)/a[i][i]; epsilon=max(epsilon,fabs(tmpx[i]-x[i])); } for(int i=0;i<n;i++) x[i]=tmpx[i]; if(epsilon<eps){ printf("迭代次数为%d\n",k); printf("方程组的解为:\n"); for(int i=0;i<n;i++) printf("x%d=%.6f\n",i,x[i]); return 0; } if(k>=100){ puts("-1"); return 0; } } return 0; } /* 4 4 0.24 -0.08 0.09 3 -0.15 0.04 -0.08 4 8 9 20 */