演算法流程:
第一步,讀入被除數 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 重複上述...