pascal高精度乘法

速度速度,在线等网上全互相抄的我受不了了高手速来急死我了别用指针和过程那些只知道从网上抄的垃圾给我滚还有那个用c++回答的呆子看好了,是pascal,只要pascal... 速度速度,在线等
网上全互相抄的我受不了了
高手速来
急死我了
别用指针和过程
那些只知道从网上抄的垃圾给我滚
还有那个用c++回答的呆子看好了,是pascal,只要pascal
展开
 我来答
MarsChenly
推荐于2018-04-23 · TA获得超过122个赞
知道答主
回答量:69
采纳率:0%
帮助的人:50.9万
展开全部
呵呵 这是最基础的啊
主要的过程&数据结构 在下面

const
maxn=100; we=10;
type
arr=array[0..maxn]of longint;

procedure cheng(a,b:arr; var c:arr);
var
i,p,q:longint;
begin
fillchar(c,sizeof(c),0);
for p:=1 to a[0] do
for q:=1 to b[0] do
begin
i:=p+q-1;
c[i]:=c[i]+a[p]*b[q];
c[i+1]:=c[i+1]+c[i] div we;
c[i]:=c[i] mod we;
end;
while c[i+1]>0 do
begin
inc(i); c[i+1]:=c[i+1]+c[i] div we;
c[i]:=c[i] mod we;
end;
c[0]:=i;
end;
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
gcbjoy
2016-01-05 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2150万
展开全部
function mult(x,y:string):string;
var
a,b,c:array[1..250] of shortint;
ia,ib:integer;
i,j,k:integer;
m,p,q:integer;
temp:string;
t:string[1];
begin
ia:=length(x);
ib:=length(y);
for i:=1 to 250 do begin a[i]:=0; b[i]:=0; c[i]:=0; end;
for i:=1 to ia do a[i]:=ord(x[ia+1-i])-ord('0');
for i:=1 to ib do b[i]:=ord(y[ib+1-i])-ord('0');
for i:=1 to ia do begin
p:=0;  {进位}
for j:=1 to ib do begin
m:=a[i]*b[j]+p+c[i+j-1];
q:=m mod 10;
c[i+j-1]:=q;
p:=m div 10;
end;
c[i+ib]:=p;
end;
k:=0;                                     {**********************}
for i:=250 downto 1 do if c[i]<>0 then 
begin k:=i; break; end;
temp:='';
for i:=k downto 1 do begin str(c[i]:1,t); temp:=temp+t; end;
mult:=temp;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梅气苍北
2019-01-17 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:889万
展开全部
呵呵
这是最基础的啊
主要的过程&数据结构
在下面
const
maxn=100;
we=10;
type
arr=array[0..maxn]of
longint;
procedure
cheng(a,b:arr;
var
c:arr);
var
i,p,q:longint;
begin
fillchar(c,sizeof(c),0);
for
p:=1
to
a[0]
do
for
q:=1
to
b[0]
do
begin
i:=p+q-1;
c[i]:=c[i]+a[p]*b[q];
c[i+1]:=c[i+1]+c[i]
div
we;
c[i]:=c[i]
mod
we;
end;
while
c[i+1]>0
do
begin
inc(i);
c[i+1]:=c[i+1]+c[i]
div
we;
c[i]:=c[i]
mod
we;
end;
c[0]:=i;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-04-05
展开全部
program aaa;
type
sz=array[1..200]of longint;
var
a,b:sz;
s,t:string;
s1,t1,i:longint;
procedure cheng(s,t:string);
var
i,j:longint;
begin
for i:=1 to s1 do
a[(s1-i)+1]:=ord(s[i])-ord('0');
for i:=1 to t1 do
b[(t1-i)+1]:=ord(t[i])-ord('0');
for i:=1 to t1 do
for j:=1 to s1 do
a[j]:=a[j]*b[i];
for i:=1 to s1-1 do
if a[i]>9 then
begin
a[i+1]:=a[i+1]+(a[i] div 10);
a[i]:=a[i] mod 10;
end;
while a[s1]>9 do
begin
a[s1+1]:=a[s1+1]+(a[s1]div 10);
a[s1]:=a[s1] mod 10;
inc(s1);
end;
end;
begin
readln(s);
readln(t);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
s1:=length(s);
t1:=length(t);
cheng(s,t);
for i:=s1 downto 1 do
write(a[i]);
readln;
readln;
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羊韫公羊煦
2019-07-26 · TA获得超过3848个赞
知道大有可为答主
回答量:3107
采纳率:32%
帮助的人:168万
展开全部
for
i:=k3
to
max*2
do
begin
if
i=k3
then
write(c[i])
else
begin
if
c[i]<1000
then
write('0')
else
if
c[i]<100
then
write('00')
else
if
c[i]<10
then
write('000');
这地方有毛病
我一会给你发到你邮箱里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式