TYVJ1455(贾老二算算术)

program P1455;

type
 arr=array [0..1000] of double;

const
 zero=1e-8;

var
 n:longint;
 a:array [0..1000] of arr;
 ans:array [0..1000] of double;

procedure init;
var
 i,j:longint;
begin
 readln(n);
 for i:=1 to n do
  begin
   for j:=1 to n+1 do read(a[i,j]);
   readln;
  end;
end;

procedure swap(var x,y:arr);
var
 t:arr;
begin
 t:=x;
 x:=y;
 y:=t;
end;

procedure main;
var
 i,j,k,max:longint;
 t:double;
begin
 for i:=1 to n do
  begin
   max:=i;
   for j:=i+1 to n do if abs(a[j,i])>abs(a[max,i]) then max:=j;
   if max<>i then swap(a[max],a[i]);
   for j:=i+1 to n do
    if abs(a[j,i]) >zero then
    begin
     t:=a[i,i]/a[j,i];
     for k:=i to n+1 do
      begin
       a[j,k]:=a[i,k]-a[j,k]*t;
      end;
    end;
  end;
end;

procedure outit;
var
 i,j:longint;
begin
 for i:=n downto 1 do
  begin
    if abs(a[i,i]) >zero then
    begin
     ans[i]:=a[i,n+1]/a[i,i];
     for j:=i-1 downto 1 do
      begin
       a[j,n+1]:=a[j,n+1]-ans[i]*a[j,i];
      end;
    end;
  end;
 for i:=1 to n do write(round(ans[i]),' ');
end;

begin

 init;
 main;
 outit;

end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值