大數除法說的比較少或許不像加法減法那樣簡單,或許是用的不太多。到底怎麼我也不知道。
反正你會了加法減法,乘法而不會除法,就像是,開啟電腦而不玩遊戲,心裡難受。
我是從看到了大神部落格後學習了一下。
部落格中講的很詳細
讓人一看就懂,我很佩服這位同學。果斷的關注了。
畢竟別人寫的是別人的。
自己寫的才是自己的 。於是我就捋了捋,模仿這寫了一遍;
思想就是:用減法來代替除法,但是一次一次的減太慢,我們就先見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...
高精度之大數階乘
大數階乘 序言 今天是我寫部落格的第二天,差點忘了寫,反思一下,下次要早點發。大數階乘也是高精度題目中的入門題。它的主要思路和上一次我發的大數加法相似,也是以陣列來按位處理資料。他的難度級別應該比大數加法還低一點。他的輸入很簡單,也不需要定義多餘的輔助陣列。只需要將需要求階乘的數先輸入到陣列中。再將...