pascal中一节乘法运算给一个详细的解释

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:57:51
program chengfa;
const max=200;
var
a,b,c:array [1..max] of 0..9;
n1,n2:string;
lena,lenb,lenc,j,i,x:integer;
begin
readln(n1);readln(n2);
lena:=length(n1);lenb:=length(n2);
for i:=1 to lena do a[lena-i+1]:=ord(n1[i])-ord('0');
for i:=1 to lenb do b[lenb-i+1]:=ord(n2[i])-ord('0');
for i:=1 to lena do begin
x:=0;
for j:=1 to lenb do begin
x:=a[i]*b[j]+x div 10 +c[i+j-1];
c[i+j-1]:=x mod 10;
end;
c[i+j]:=x div 10;
end;
lenc:=i+j;
while(c[lenc]=0) and (lenc>1) do dec(lenc);
for i:=lenc downto 1 do write(c[i]);
writeln
end.

for j:=1 to lenb do begin
x:=a[i]*b[j]+x div 10 +c[i+j-1];
c[i+j-1]:=x mod 10;
end;
c[i+j]:=x div 10;
是什么意识

for j:=1 to lenb do begin
// for循环, 从1开始到lenb结束
x:=a[i]*b[j]+x div 10 +c[i+j-1];
// x=a[i]*b[j]+x 除以 10 加 c[i+j-1];
c[i+j-1]:=x mod 10;
// x对10取余赋给c数组下标为i+j-1的元素
end;
// 结束循环
c[i+j]:=x div 10;
// c[i+j]:=x 除以 10;