高精度之大數除法

2022-09-23 11:00:13 字數 1092 閱讀 3693

大數除法說的比較少或許不像加法減法那樣簡單,或許是用的不太多。到底怎麼我也不知道。

反正你會了加法減法,乘法而不會除法,就像是,開啟電腦而不玩遊戲,心裡難受。

我是從看到了大神部落格後學習了一下。

部落格中講的很詳細

讓人一看就懂,我很佩服這位同學。果斷的關注了。

畢竟別人寫的是別人的。

自己寫的才是自己的 。於是我就捋了捋,模仿這寫了一遍;

思想就是:用減法來代替除法,但是一次一次的減太慢,我們就先見10的n次方次,n可不是亂來的 因為除數不能大於被除數 就以此來決定n的大小。

照著***的步驟先自己寫一下試一試。

1我們來輸入兩個數,確定位數。判斷大小關係;

2然後進行把輸入的被除數除數進行倒置。因為做減法嘛,比如123-23 我們要先用3來減3 所以將數倒置把3放到0的位置我們就能從0開始逐個往後處理了。

3要處理的就是我們首先減多少。比如12345 - 2 因為我們先減10的n次方 我們在這決定先減20 還是200 還是2000

決定權在兩個數字數相差多少。

4 下面我們要來做減法了 比如先減20000 下一次不能減20000了 ,我們就來減2000 這一次來處理。

並且來記錄相減的次數 注意減20000 的時候減一次,和2000的時候減一次,這是相差10次的。

5 最後就是尾部的處理前導0 的問題了。

下滿貼上**:

#include

using namespace std;

//基礎操作大數除法

int substract(char *a,char*b,int alen,int blen)

} for(int i=0;i=0;i--)

return 0;

}int main()

blen=alen;

int temp;

for(int i = 0 ; i<=a_b;i++)

}int i=a_b;

while(!_c[i]&&i>=0)

i--;

if(i>=0)

for(i;i>=0;i--)

cout<<_c else cout return>

好了!感謝自己堅持。

高精度除法 大數除法

問題描述 給出兩個正整數,計算a b的值,保證a和b的位數不超過500位。輸入描述 輸入兩個用空格隔開的正整數。輸出描述 輸出a b的值。樣例輸入 500 2 樣例輸出 250 解題思路 大數除法的實現有兩種方式 1 用a b,迴圈,直到a 計算過程 擴充套件b的位數 a.length b.lent...

高精度之大數乘大數

現在我們來說一下大數乘以大數。大數乘以大數也是用來模擬手算。舉個例子吧!先從個位開始乙個乙個的乘 乘完個位然後再乘十位,乘十位的時候要和個位的想成的結果相加。這裡注意乘十位的時候 就不要和乘個位數字的結果中的最後一位相加了 就是如圖搓位。就是這樣 下面先貼上我的 include includeusi...

高精度之大數階乘

大數階乘 序言 今天是我寫部落格的第二天,差點忘了寫,反思一下,下次要早點發。大數階乘也是高精度題目中的入門題。它的主要思路和上一次我發的大數加法相似,也是以陣列來按位處理資料。他的難度級別應該比大數加法還低一點。他的輸入很簡單,也不需要定義多餘的輔助陣列。只需要將需要求階乘的數先輸入到陣列中。再將...