0分求调
查看原帖
0分求调
1125242
zenith_once楼主2025/6/14 10:46
#include <bits/stdc++.h>
#define LL long long
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define dow(i,j,k) for(int i=j;i>=k;i--)
using namespace std;
const int N=101,eps=0.000001;
int n;
double a[N][N+1],ans[N];
bool f;
void scan()
{
	rep(i,1,n) rep(j,1,n+1) cin>>a[i][j];
}
void get_ans1()
{
	rep(u,1,n)
	{
		int r=u;
		rep(i,u+1,n) if(fabs(a[u][r])<fabs(a[u][i])) r=i;
		if(a[u][r]<eps) {puts("No Solution");f=1;return;}
		if(u!=r) swap(a[u],a[r]);
		double cnt=a[u][u];
		rep(i,u,n+1) a[u][i]/=cnt;
		rep(i,u+1,n)
		{
		  cnt=a[i][u];
		  rep(j,u,n+1) a[i][j]-=cnt*a[u][j];
		}
	}
}
void get_ans2()
{
 //   rep(i,1,n)  { rep(j,1,n+1) cout<<a[i][j]<<" ";cout<<endl;}

	ans[n]=a[n][n+1];
    for(int i=n-1;i>=1;i--){
        ans[i]=a[i][n+1];
        for(int j=i+1;j<=n;j++)
            ans[i]-=(a[i][j]*ans[j]);
    }
}
void print()
{
    cout<<fixed<<setprecision(2);
	rep(i,1,n) cout<<ans[i]<<endl; 
}
int main()
{
	cin>>n;
	scan();
	get_ans1();
    if(f) return 0;
	get_ans2();
	print();
	return 0;
}
2025/6/14 10:46
加载中...