十字相乘法怎样最快找出相乘的两个数a×d+b×c(呈十字形相乘所以叫十字相乘法)恰好=一次项系数怎样才能最快找出a b c d 来

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 00:06:37
十字相乘法怎样最快找出相乘的两个数a×d+b×c(呈十字形相乘所以叫十字相乘法)恰好=一次项系数怎样才能最快找出a b c d 来

十字相乘法怎样最快找出相乘的两个数a×d+b×c(呈十字形相乘所以叫十字相乘法)恰好=一次项系数怎样才能最快找出a b c d 来
十字相乘法怎样最快找出相乘的两个数
a×d+b×c(呈十字形相乘所以叫十字相乘法)恰好=一次项系数
怎样才能最快找出a b c d 来

十字相乘法怎样最快找出相乘的两个数a×d+b×c(呈十字形相乘所以叫十字相乘法)恰好=一次项系数怎样才能最快找出a b c d 来
var s1,s2:ansistring;
w1,w2,w3,i,j,x:longint;
a,c,b:array[1..10000]of longint;
begin
readln(s1);
readln(s2);
w1:=length(s1);
w2:=length(s2);
i:=w1;j:=w2;
w1:=0;w2:=0;
while(i>3)do
begin
inc(w1);
a[w1]:=ord(s1[i])-48+(ord(s1[i-1])-48)*10+(ord(s1[i-2])-48)*100+(ord(s1[i-3])-48)*1000;
i:=i-4;
end;
if i0 then inc(w1);
case i of
1:a[w1]:=ord(s1[i])-48;
2:a[w1]:=ord(s1[i])-48+ord(s1[i-1])*10-480;
3:a[w1]:=ord(s1[i])-48+ord(s1[i-1])*10-480+ord(s1[i-2])*100-4800;
end;
while(j>3)do
begin
inc(w2);
b[w2]:=ord(s2[j])-48+ord(s2[j-1])*10-480+ord(s2[j-2])*100-4800+ord(s2[j-3])*1000-48000;
j:=j-4;
end;
if j0 then inc(w2);
case j of
1:b[w2]:=ord(s2[j])-48;
2:b[w2]:=ord(s2[j])-48+ord(s2[j-1])*10-480;
3:b[w2]:=ord(s2[j])-48+ord(s2[j-1])*10-480+ord(s2[j-2])*100-4800;
end;
for i:=1 to w1 do
for j:=1 to w2 do
begin
c[i+j-1]:=c[i+j-1]+a[i]*b[j];
c[i+j]:=c[i+j]+c[i+j-1] div 10000;
c[i+j-1]:=c[i+j-1] mod 10000;
end;
w3:=w1+w2;
while (c[w3]=0)and(w3>1) do dec(w3);
write(c[w3]);
for i:=w3-1 downto 1 do
begin
if c[i]