time limit: 1 second
memory limit: 2 mb
問題描述輸入只有兩行,第一行乙個整數x,第二行乙個整數y。其中0<=x<=10^200,0<=y<=10^200輸入兩個高精度非0整數,輸出它們的整數商(不考慮小數部分)。
輸出有1行,為兩個數的整數商。
222222222233333333333333333333222222222222222222222222222222
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 ...