高精度除高精度

2021-07-24 09:37:24 字數 961 閱讀 6139

演算法流程:

第一步,讀入被除數 a 和 除數 b,判斷是否 a < b,是則輸出 0 並結束演算法,否則令 answer := 0;

第二步,令餘數 remainder := 0,令 i 從被除數最高位的下標開始;

第三步,令 remainder := remainder * 10 + a[i],令 c := 9;

第四步,判斷是否 b * c > remainder(高乘單),是則 c := c - 1 轉第四步;

第五步,answer = answer * 10 + c,remainder = remainder - b * c(高減高),i 右移一位;

第六步,判斷是否 i 溢位,否則轉第三步;

第七步,輸出 answer。

**如下:

#include"stdio.h"

#include"string.h"

#define max_size 505

char temporary_a[max_size],temporary_b[max_size];

int a[max_size],answer[max_size],b[max_size],product[max_size],remainder[max_size];

int main()

for(int i=a_length-1;i>=0;i--)

if(product_lengthstrcmp(temporary_a,temporary_b)<=0)

break;

}if(answer[i]!=0)

}if(answer[a_length-b_length]==0)

a_length--;

for(int i=a_length-b_length;i>=0;i--)

printf("%d",answer[i]);

return

0;}

9111 高精度除法 高精度除高精度

time limit 1 second memory limit 2 mb 問題描述 輸入兩個高精度非0整數,輸出它們的整數商 不考慮小數部分 輸入只有兩行,第一行乙個整數x,第二行乙個整數y。其中0 x 10 200,0 y 10 200 輸出有1行,為兩個數的整數商。22222222223333...

9111 高精度除法 高精度除高精度

time limit 1 second memory limit 2 mb 問題描述 輸入兩個高精度非0整數,輸出它們的整數商 不考慮小數部分 輸入只有兩行,第一行乙個整數x,第二行乙個整數y。其中0 x 10 200,0 y 10 200 輸出有1行,為兩個數的整數商。22222222223333...

大數相除「高精度除低精度」和「高精度除高精度」

二 高精度除高精度 採用計算機做高精度除法時,模擬日常除法的步驟。但計算機不可能做 試商 這時,我們可以採用減法來模擬 試商 的過程。演算法的步驟如下 1 將除數移動和被除數對齊,位數不夠時,補0。2 利用被除數減去除數,一直減到被除數小於除數,減的次數,就是 試商 的結果,每移動一次。3 重複上述...