高斯消元

#include<bits/stdc++.h>
using namespace std;
int n;
double res[111],G[111][111];
void guess(int ii)
{
	int i,j;
	double first=G[ii][ii],first1;
	for(i=ii+1;i<=n;i++)
	{
		first1=-G[i][ii];
		for(j=ii;j<=n+1;j++)G[i][j]+=((G[ii][j]*first1)/first);
	}
}
double r_guess(int ii)
{
	int i=ii;
	double sum=G[ii][n+1];
	while(i<=n)i++,sum-=(G[ii][i]*res[i]);
	return sum/G[ii][ii];
}
int main()
{
	int i,j;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n+1;j++)scanf("%lf",&G[i][j]);
	}
	for(i=1;i<n;i++)guess(i);
	for(i=n;i>=1;i--)res[i]=r_guess(i);
	for(i=1;i<=n;i++)printf("%d ",(int)floor(res[i]+0.5));
	return 0;
}

  

原文地址:https://www.cnblogs.com/wjcwjc/p/4998244.html