求助。。一道關於高精度乘法的程式題(pascal)

2022-06-04 04:50:19 字數 2362 閱讀 1183

1樓:

program y1_1;

const

z=10000;

vara:array[0..z+1]of integer;

n,j,i,k:longint;

begin

readln(n);

begin

a[1]:=1;

for i:=1 to n do

begin

for j:=1 to z do

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

for k:=1 to z do

begin

a[k+1]:=a[k+1]+a[k]div 10;

a[k]:=a[k]mod 10;

end;

end;

i:=z;k:=0;

repeat

if a[i]<>0 then k:=1;

i:=i-1;

until k=1;

k:=0;

for j:=i+1 downto 1 dowrite(a[j]);

end;

writeln;

end.

2樓:匿名使用者

這是高精度乘高精度:

const n=12800;

type t=array[1..n]of 0..9;

var a,b,c,d,e:t;

l1,l2,i,j,k,s,p:longint;

s1,s2:string;

f:text;

time,t1,t2:real;

procedure cheng(var a,b:t;l1,l2:longint);

var z:longint;

begin

for j:=1 to l2 do

begin

k:=0;

for i:=1 to l1 do

begin

z:=(a[i]*b[j]+k)mod 10;

k:=(a[i]*b[j]+k)div 10;

c[i+j-1]:=c[i+j-1]+z;

if c[i+j-1]>=10 then begink:=k+c[i+j-1] div 10;

c[i+j-1]:=c[i+j-1]mod 10;

end;

end;

c[l1+j]:=c[l1+j]+k;

end;

end;

下面是單精度乘以高精度:

var m:string;

n,i,k,j,b,c,d:integer;

a:array[1..500]of integer;

begin

readln(m);

readln(n);

for i:=length(m) downto 1 dobegin

b:=ord(m[i])-48;

a[i]:=(b*n+j) mod 10;

j:=(n*b+j) div 10;

c:=c+1;

end;

if j>0 then write(j);

for i:=1 to c do write(a[i]);

end.

我把主要的精度計算給你了,其他的麼自己編了~~改改就好了

3樓:匿名使用者

var n,w,i:longint;

a:packed array[1..100000]of longint;

procedure jc(k:longint);

var x,i:longint;

begin

x:=0;

for i:=1 to w do

begin

a[i]:=a[i]*k+x;

x:=a[i] div 10;

a[i]:=a[i] mod 10;

end;

while x>0 do

begin

w:=w+1;

a[w]:=x mod 10;

x:=x div 10;

end;

end;

begin

read(n);

a[1]:=1;

w:=1;

for i:=1 to n do jc(i);

for i:=w downto 1 do write(a[i]);

end.

如果用高精度的話,10^18的資料規模肯定會超時,需要優化。

4樓:

ice_chain的難以在1s內出解

可以將1..n分解質因數,求出各質因數的個數,然後用二分快速冪

n的範圍較大,要用int64

求助一道數學題,求助一道中考數學題!!

過點a做直線pq bc。延長be,交pq於點q 佯長cf,交pq於點p。有 pq bc,ae ac ce,af ab bf bce aqe相似 ae ce aq bc 1 bcf apf相似 af bf ap bc 2 1 2 得 ac ce ce ab bf bf ap aq bc 1 1 ce ...

一道程式填空題,一道c語言填空題,程式沒看懂求詳細解釋!

include define n 13 struct a n int ok 0 已完成完整計算的輪次數 int ball int i,int n,int max 完成一次滾球,輸入正確擊倒柱數 if ok i 1 printf 各輪第一次得分 for k 1 k 1 k printf 5d a k ...

求助一道高一物理題,求助一道高中物理題

路程s 72 20 60 24 勻變速運動路程s1 勻速運動路程s2 v 20 4 60 4 15 vs s1 s2 即24 1 30 v 4 15 v 得v 80km h 根據平均速度的定義式v s t 得到s vt 72 設勻速時的速度度為v。因為面積就是位移所以 s 1200 240 1200...