
pascal高精度除法
programexam4;constmax=200;vara,c:array[1..max]of0..9;x,b:longint;n1,n2:string;lena,co...
program exam4;
const max=200;
var a,c:array[1..max] of 0..9;
x,b:longint;
n1,n2:string;
lena,code,i,j:integer;
begin
write('Input dividend:'); readln(n1);
write('Input divisor:'); readln(n2);
lena:=length(n1);
for i:=1 to lena do a[i] := ord(n1[i]) - ord('0');
val(n2,b,code); //字符串n2转成数值b,code参数可以省略
x:=0; //按位相除
for i:=1 to lena do
begin
c[i]:=(x*10+a[i]) div b;
x:=(x*10+a[i]) mod b;
end;
j:=1;
while (c[j]=0) and (j<lena) do inc(j); //去除高位的0
for i:=j to lena do write(c[i]) ;
writeln
end.
code是做什么用的,能否对高精度除法做一些解释和拓展,谢谢 展开
const max=200;
var a,c:array[1..max] of 0..9;
x,b:longint;
n1,n2:string;
lena,code,i,j:integer;
begin
write('Input dividend:'); readln(n1);
write('Input divisor:'); readln(n2);
lena:=length(n1);
for i:=1 to lena do a[i] := ord(n1[i]) - ord('0');
val(n2,b,code); //字符串n2转成数值b,code参数可以省略
x:=0; //按位相除
for i:=1 to lena do
begin
c[i]:=(x*10+a[i]) div b;
x:=(x*10+a[i]) mod b;
end;
j:=1;
while (c[j]=0) and (j<lena) do inc(j); //去除高位的0
for i:=j to lena do write(c[i]) ;
writeln
end.
code是做什么用的,能否对高精度除法做一些解释和拓展,谢谢 展开
1个回答
展开全部
val(n2,b,code) 这是字符串过程 code是参数
也可以将 val(n2,b,code) 改成 val(n2,b) 意思是将n2这个字符串转换成数字,存放到变量b中
也可以将 val(n2,b,code) 改成 val(n2,b) 意思是将n2这个字符串转换成数字,存放到变量b中
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询