請幫我解析帕斯卡高精度計算的乘法運算。 謝謝 40

發布 科技 2024-04-11
4個回答
  1. 匿名使用者2024-02-07

    乘數 s1、乘數 s2 讀入

    將 S1 和 S2 分成 4 位段,並將它們轉換為陣列 A 和 B 中的數值; 記下 a、b、k1、k2 的長度;

    i 被分配為 b 中的最低數字;

    從 b 中取第 i 位並將其乘以 a,然後將其新增到另乙個陣列 c 中;

    i:=i-1;檢測I值:小於k2後轉,否則轉

  2. 匿名使用者2024-02-06

    你不能複製其他答案嗎? 我要高精度,高精度,大哥。

  3. 匿名使用者2024-02-05

    var i,j,la,lb,len:integer;

    s1,s2:string;

    m:longint;

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

    beginreadln(s1); la:=length(s1);

    for i:=1 to la do a[i]:=ord(s1[la-i+1])-48;

    readln(s2); lb:=length(s2);

    for i:=1 to lb do b[i]:=ord(s2[lb-i+1])-48;

    for i:=1 to la do

    for j:=1 to lb do

    c[i+j-1]:=c[i+j-1]+a[i]*b[j];

    len:=la+lb;

    for i:=1 to len do

    beginc[i+1]:=c[i+1]+c[i] div 10;

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

    end;while c[len]=0 do dec(len);

    m:=c[len];

    while m>0 do begin c[len]:=m mod 10;m:=m div 10;inc(len);end;

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

    end.應該很容易理解,說白了,就是模擬乘法。

  4. 匿名使用者2024-02-04

    請看以下片段:

    輸入 a、b 陣列,a 有 n 位,b 有 m 位,輸出 c 陣列。

    fillchar(c,sizeof(c),0) 被清除。

    for i:=1 to n do

    for j:=1 to m do

    c[i+j-1]:=c[i+j-1]+a[i]*b[j];

    這句話是關鍵,為什麼:

    例如,123*456

    考慮到數字 A 的第 i 位數字和數字 b 的第 j 位的乘法,你不妨取 2 表示 i,取 3 表示 j,那麼 a[i]=2 a[j]=4(按相反的順序取)是 20*400

    你看到了嗎,這是乙個 4 位數字,但不一定,它可能是乙個 5 位數字,但共同點是末尾有 3 個零。

    那是。 a[i]*10^(i-1)*b[j]*10^(j-1)--a[i]*b[j])*10^(i+j-2)

    所以它儲存在 c[i+j-1] 中。

    對於 i:=1 到 n+m,將兩個數字乘以最大 n+m 位數。

    beginc[i+1]:=c[i+1]+c[i] div 10;

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

    end;上一步沒有考慮攜帶,這裡一波已經處理了所有的攜帶}

相關回答
10個回答2024-04-11

不要大寫,不,看著你的頭很痛。

8個回答2024-04-11

同樣,讓我們分解問題並逐步分析它:

先分析一下房東自己: >>>More

6個回答2024-04-11

問候。 我是牧師的父親瓊斯·麥克斯韋·哈思(Jones Maxwell Harth),他是兒童**協會(聯合國國際兒童教育**)的一名志願者,在那裡,我的良好監督資金的基礎意味著兒童**協會,我被任命為世界銀行實況調查特別小組的志願者。 >>>More

10個回答2024-04-11

你們的關係確實很微妙,可以看出,這不僅僅是朋友的關係,但還不是愛情,只有一步之遙。 >>>More

4個回答2024-04-11

我聽見風在呼喚你的名字。

它又告訴我這個家庭。 >>>More