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

2021-09-28 10:09:33 字數 1092 閱讀 3759

time limit: 1 second

memory limit: 2 mb

問題描述

輸入兩個高精度非0整數,輸出它們的整數商(不考慮小數部分)。

輸入只有兩行,第一行乙個整數x,第二行乙個整數y。其中0<=x<=10^200,0<=y<=10^200

輸出有1行,為兩個數的整數商。

222222222233333333333333333333

222222222222222222222222222222

1(換行)

【題解】

思路是,將除數一開始加上n個0,然後不斷地用這個去減被除數。減了幾次c[n]就為幾。然後n--,即除數再除10,然後再用除數去減被除數。減了幾次c[n-1]就為幾。

其中涉及到高精度的比較,高精度減法等內容。

【**】

#include #include #include #include using namespace std;

int a[400],b[400],c[400];

void input_data(int a) //用乙個輸入過程。呼叫兩次 就可以讀入兩個數字了。

bool can(int a,int b) //判斷a是否能被b減。如果能返回true

return true;

}void numcp(int a,int b,int w) //把a陣列賦值給b陣列,其中w表示a數字乘了10^w

void jianfa(int a,int b) //做高精度減法,用a減去b

a[i] = a[i] - b[i];

} while (a[0] > 1 && a[a[0]] == 0) a[0]--; //去掉前導0

}void gaojingdu(int a,int b,int c) //高精度除法主程式

} while (lenc > 1 && c[lenc] == 0) //去掉前導0

lenc--;

c[0] = lenc; //把答案數字的長度賦值給c[0]

}void output_ans()

int main()

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

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

高精度除法(高除高)

include include using namespace std int a 1000 b 1000 c 1000 tmp 1000 char s1 1000 s2 1000 int zh1 int zh2 int zhan int x int bd return1 int jian a i ...

高精度除高精度

演算法流程 第一步,讀入被除數 a 和 除數 b,判斷是否 a b,是則輸出 0 並結束演算法,否則令 answer 0 第二步,令餘數 remainder 0,令 i 從被除數最高位的下標開始 第三步,令 remainder remainder 10 a i 令 c 9 第四步,判斷是否 b c ...