两遍过
第一遍是PE了 最后一个数不能输出空格 气死啦
By——WXH
//我的变量是需要就加一个 所以就有很多定义 惨啊
#include<bits/stdc++.h>
using namespace std;
int n;
double st[20];
double s,tmp;
double gs[20][20];
double ans[20];
void gauss()
{
for(int i=1;i<n;i++)
{
double t=gs[i][i];
for(int j=i;j<=n+1;j++)
gs[i][j]/=t;
for(int j=i+1;j<=n;j++)
{
double tt=-gs[j][i];
for(int k=i;k<=n+1;k++)
{
gs[j][k]+=tt*gs[i][k];
}
}
}
for(int i=n;i;i--)
{
double t=gs[i][n+1];
for(int j=n;j>i;j--)
{
t-=gs[i][j]*ans[j];
}
ans[i]=t/gs[i][i];
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%lf",&st[i]);
s+=st[i]*st[i];
}
for(int i=1;i<=n;i++)
{
double sum=0;
for(int j=1;j<=n;j++)
{
scanf("%lf",&tmp);
sum+=tmp*tmp;
gs[i][j]=2*(tmp-st[j]);
}
gs[i][n+1]=sum-s;
}
gauss();
for(int i=1;i<n;i++)
{
printf("%.3lf ",ans[i]);
}
printf("%.3lf",ans[n]);
return 0;
}