高精度除法

2021-06-28 06:14:26 字數 1141 閱讀 9885

/********************************************

演算法思想:

反覆做減法,看看從被除數裡最多能減去多少個除數,商就是多少;

所以演算法核心是寫乙個大整數的減法函式;

反覆呼叫該函式進行減法操作;

演算法步驟:

用陣列a表示被除數,陣列b表示除數,陣列res表示商;

先用被除數a減去除數b得到差的位數k,同時商+1;

再用被除數a減去若干個除數b*(10^k);

不夠減了,再減去若干個除數b*(10^(k-1))...b*(10^(k-2))...;

一直減到不夠減為止;

每成功減一次,則商的相應位+1;

最後再迴圈處理商的進製問題;

********************************************/

#include#include#include#include#include#includeusing namespace std;

const int n=1000;

int a[n],b[n],res[n*2];

char x[n],y[n];

int len1,len2;

void init()

for(int i=len2-1,j=0; i>=0; i--)

}int substraction(int *p1,int *p2,int len1,int len2)//計算長度為len1的大整數減去長度為len2的大整數的結果的長度

return 0;

}void output()

}bool flag=0;

for(int i=n-1; i>=0; i--)//輸出

else if(res[i])

}if(!flag)

printf("0");

printf("\n");

}void solve()

}len2=len1;

for(int j=0; j<=k; j++)//先減去若干個b*(10^k),不夠減了再減去若干個b*(10^(k-1))...

}output();

}int main()

return 0;

}

高精度除法(高精度除以高精度)

先貼乙個簡單的高精度除以單精度的 include include include using namespace std int main else ys ys 10 a i 0 while c i 0 i for int j i j 0 j printf d c j if ys printf d ...

高精度除法

codevs 1331 西行寺幽幽子 codevs 3118 高精度練習之除法 學了高精度這麼久到現在才開始搞除法txt,總的來說高精除是四則運算 裡最難的。但是,高精度都是可以利用我們平時做算術時的方法手動模擬的,接下來我 們來學一下高精除。思路 首先,除法是建立在減法的基礎上的,我們可以考慮每次...

高精度除法

思路 求迴圈節需要模擬迴圈小數的求解過程。那麼什麼時候會出現迴圈呢?在除的過程中,除數b是不變的,而被除數a一直在變化,那麼當a變換為之前出現過的某個值時,就出現了迴圈。include include include include using namespace std const int n 3...