WA#3,#7,#11蒟蒻求条
查看原帖
WA#3,#7,#11蒟蒻求条
1236806
wjr_jok楼主2024/3/28 21:39
#include<bits/stdc++.h>
using namespace std;
int n,maxx;
double bj=1e-9,xc,zh;
double fcz[110][110],tj[110];
void gaosi(){
	for(int i=1;i<=n;i++){
		maxx=i;
		for(int j=i+1;j<=n;j++){
			if(fabs(fcz[j][i])>fabs(fcz[maxx][i])){
				maxx=j;
			}	
		}
		if(maxx!=i){
			for(int j=i;j<=n+1;j++){
				swap(fcz[i][j],fcz[maxx][j]);
			}
		}
		for(int j=i+1;j<=n;j++){
			if(!fcz[j][i]){
				continue;
			}
			xc=fcz[i][i]*1.0/fcz[j][i];
			for(int k=i;k<=n+1;k++){
				fcz[j][k]=fcz[i][k]-fcz[j][k]*xc;
			}
		}
	}
	for(int i=n;i>=1;i--){
		zh=0;
		for(int j=i+1;j<=n;j++){
			zh+=fcz[i][j]*tj[j];
		}
		tj[i]=(fcz[i][n+1]-zh)*1.0/fcz[i][i];
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		tj[i]=-INT_MAX;
		for(int j=1;j<=n+1;j++){
			cin>>fcz[i][j];
		}
	}
	gaosi();
	for(int i=1;i<=n;i++){
		if(!fcz[i][i]&&fcz[i][n+1]>bj){
			cout<<"-1";
			return 0;
		}
	}
	for(int i=1;i<=n;i++){
		if(!fcz[i][i]&&fcz[i][n+1]<bj){
			cout<<"0";
			return 0;
		}
	}
	for(int i=1;i<=n;i++){
		printf("x%d=%.2lf\n",i,tj[i]);
	}
	return 0;
}
2024/3/28 21:39
加载中...