90分求条
查看原帖
90分求条
1423724
dyxcj楼主2025/7/29 20:41
#include<bits/stdc++.h>
using namespace std;
double a[50][50];
int n,l;
bool query(double x,double y){return (fabs(x-y)<1e-9);}
void guess(){
    for(int i=0;i<n;i++){
		int d=l;
		for(int j=l+1;j<n;j++)if(fabs(a[j][i])>fabs(a[d][i]))d=j;
		if(query(a[d][i],0))continue;
		for(int j=0;j<=n;j++)swap(a[l][j],a[d][j]);
		for(int j=0;j<n;j++){
			if(j==l)continue;
			double z=a[j][i]/a[l][i];
			for(int k=i;k<n+1;k++)a[j][k]-=a[l][k]*z;
		}
		++l;
	}
	if(l<n){
		while(l<n)if(!query(a[l++][n],0)){cout<<-1;return;}
		cout<<0;
	}
	else for(int i=0;i<n;i++)cout<<"x"<<i+1<<"="<<fixed<<setprecision(2)<<a[i][n]/a[i][i]<<"\n";
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
	cin>>n;
	for(int i=0;i<n;i++)for(int j=0;j<n+1;j++)cin>>a[i][j];
	guess();
	return 0;
}
2025/7/29 20:41
加载中...