pascal高精度乘法

2021-03-05 09:18:30 字數 3322 閱讀 6311

1樓:匿名使用者

呵呵 這是最基礎的啊

主要的過程&資料結構 在下面

const

maxn=100; we=10;

type

arr=array[0..maxn]of longint;

procedure cheng(a,b:arr; var c:arr);

vari,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;

2樓:匿名使用者

program aaa;

type

sz=array[1..200]of longint;

vara,b:sz;

s,t:string;

s1,t1,i:longint;

procedure cheng(s,t:string);

vari,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 dowrite(a[i]);

readln;

readln;

end.

3樓:匿名使用者

基本演算法裡有:

4樓:

program gjcf;

const

n=100;

varstra,strb:string;

lena,lenb,i,j,jw,x,y,t:integer;

a,b,c:array[1..n] of integer;

begin

readln(stra);

readln(strb);

lena:=length(stra);

lenb:=length(strb);

for i:=1 to lena do a[i]:=ord(stra[lena-i+1])-ord('0');

for i:=1 to lenb do b[i]:=ord(strb[lenb-i+1])-ord('0');

for i:=1 to lenb do

for j:=1 to lena do

begin

x:=a[j]*b[i];

jw:=x div 10;

y:=x mod 10;

t:=j+i-1;

c[t]:=c[t]+y;

c[t+1]:=c[t+1]+(c[t] div 10)+jw;

c[t]:=c[t] mod 10;

end;

j:=t+1;

while c[j]=0 do j:=j-1;

for i:=j downto 1 do write(c[i]);

writeln

end.

5樓:匿名使用者

function mult(x,y:string):string;

vara,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;

高精度問題,java 精度問題

當然有必要掌握 但是不是每道題都要用到高精度計算,也有可能不考。不是說每道題都會出現高精度計算,那程式寫起來就麻煩了。18日複賽了 做題做題 對啊.我也天天做題做題噠 高精度問題 這段 和乘法的手算是一致的,採用的先乘在加的方式。用陣列可以很好的控制精度。這個是用10進位制方式控制每個存貯單元的內容...

小量程,高精度的液位計

20mm以內,測量精度可以做到是1mm,小於1mm做不到。有這樣的液位計,要求液麵以上有15釐米空間,用來裝液位計。可以做成帶顯示,4 20ma輸出。超聲波液位計是非接觸測量方式,0.2 精度,1 25米量程,優異的聚焦 自制 使用槓桿原理,請問液位計這些引數是指什麼?量程 精度 測量範圍 防護等級...

一般電腦塗層測厚儀的精度是多少,高精度塗層測厚儀的測量精度有多高呢?

產品簡介 產品型號 gt810f nf 2 雙功能技術的測厚儀,完成磁感應和電渦流測量自動轉換 應用雙功能測量技術,能夠自動識別磁性或非磁性底材,然後採用相應的測試方法,適用於各種測量環境。可測量非磁性底材上的非導電性塗層和磁性底材上的非磁性塗層的厚度。gt810f nf 2塗層測厚儀是具有廣泛使用...