Huck数据没过求调
查看原帖
Huck数据没过求调
1361700
hanqianyi楼主2024/12/28 14:26
#include<bits/stdc++.h>
using namespace std;
int n;
double a[1100][1100],b[1100],x[1100];
int main()
{
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
		for(int j = 1;j<=n;j++)
		{
			cin>>a[i][j];
		}
		cin>>b[i];
	}
	for(int i = 1;i<=n;i++)
	{
		for(int j = i+1;j<=n;j++)
		{
			double tp = a[j][i]/a[i][i];
//			tp = floor((tp+0.005)*100)/100;
			for(int k = 1;k<=n;k++)
			{
				a[j][k]-=a[i][k]*tp;
			}
			b[j]-=b[i]*tp;
			/*
			for(int k = 1;k<=n;k++)
			{
				for(int p = 1;p<=n;p++)
				{
					cout<<a[k][p]<<" ";
				}
				cout<<b[k]<<"\n";
			}
			*/
		}
	}
	for(int i = 1;i<=n;i++)
	{
		bool f = false;
		for(int j = 1;j<=n;j++)
		{
			if(a[i][j] != 0)
			{
				f = true;
				break;
			}
		}
		if(!f)
		{
			cout<<"No Solution";
			return 0;
		}
	}
	for(int i = n;i>=1;i--)
	{
		double sum = 0;
		for(int j = 1;j<=n;j++)
		{
			sum+=a[i][j]*x[j];
		}
		x[i] = (b[i]-sum)/a[i][i];
	}
	for(int i = 1;i<=n;i++)
	{
		printf("%.2lf\n",floor((x[i]+0.005)*100)/100);
	}
	return 0;
}
2024/12/28 14:26
加载中...