样例输出 “nan”求助!悬1关,先到先得!
查看原帖
样例输出 “nan”求助!悬1关,先到先得!
804607
rainygame楼主2023/4/12 22:33
#include <bits/stdc++.h>
using namespace std;
#define MAXN 12
const double eps = 1e-7;  // 精度

int n, m;
double tmp;
double b[MAXN][MAXN], a[MAXN][MAXN];

void gauss(){
	for (int i=1; i<=n; i++){
		m = i;
		while (m <= n && fabs(a[m][i]) < eps) m++;
		
		if (m != i) swap(a[m], a[i]);
		tmp = a[i][i];
		for (int j=1; j<=n+1; j++) a[i][j] /= tmp;
		for (int k=1; k<=n; k++){
			if (k != i){
				tmp = a[k][i];
				for (int j=1; j<=n+1; j++) a[k][j] -= tmp * a[i][j];
			}
		}
	}
}

int main(){
	cin.tie(0);
	cout.tie(0);
	
	cin >> n;
	for (int i=1; i<=n; i++){
		for (int j=1; j<=n+1; j++) cin >> b[i][j];
	}
	
	for (int i=1; i<=n; i++){
		for (int j=1; j<=n; j++) a[i][j] = 2*(b[i][1]-b[i+1][1]);
		for (int j=1; j<=n; j++) a[i][n+1] += pow(a[i][j], 2)-pow(a[i+1][j], 2);
	}
	
	gauss();
	for (int i=1; i<=n; i++) printf("%.3lf\n", a[i][n+1]);
	
	return 0;
}

2023/4/12 22:33
加载中...