📄 pascal源代码.pas
字号:
Const
max=100;
type
matrix=array[1..max,1..max+1] of integer;
var
d:array[0..max] of matrix;
i,j,k,t,n:integer;
Function mark(i,j:integer):shortint;
begin
if odd(i+j) then mark:=-1 else mark:=1;
End;
Function sub(s:matrix;size:integer):integer;
var i,j,p:integer;
ne:matrix;
begin
sub:=0;
if size=2 then begin
sub:=s[1,1]*s[2,2]-s[1,2]*s[2,1];
exit;
end;
for p:=1 to size do
begin
fillchar(ne,sizeof(ne),0);
ne:=s;
for i:=1 to size-1 do
ne[i]:=ne[i+1];//Merge Up and Down
for i:=1 to size-1 do
for j:=p to size-1 do
ne[i,j]:=ne[i,j+1];//Merge Left and Right
inc(sub,sub(ne,size-1)*s[1,p]*Mark(n-size+1,n-size+p));
end;
End;
begin
assign(input,'matrix.txt');reset(input);
assign(output,'answer.txt');rewrite(output);
fillchar(d,sizeof(d),0);
readln(n);
for i:=1 to n do begin
for j:=1 to n+1 {Augmented Matrix} do
read(d[0][i,j]);
readln;
end;
close(input);
t:=sub(d[0],n);
for i:=1 to n do begin
d[i]:=d[0];
for j:=1 to n do d[i][j,i]:=d[0][j,n+1];
k:=sub(d[i],n);
if k mod t=0 then writeln('X',i,' = ',k div t)
else writeln('X',i,' = ',k,'/',t);
end;
close(output);
End.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -