高精度除法
高精度运算:A / B 高精度
输入两个整数 A(大数) 和 b(小数),输出它们的商。
【输入描述】
输入一行。输入A和B,用空格隔开。其中:0 ≤ A ≤ 10^5000,1≤ b ≤10^9
【输出描述】
输出一行。输出运算结果。
【输入样例】
5432 23
【输出样例】
23
【参考程序】
//小牛编程(洛谷P1480)
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
const int maxn = 5001;
int a[maxn], c[maxn];
long long b, x;
int main() {
string A;
cin >> A >> b;
int lenA = A.length();
//转换数组(从高位除)A
for (int i = 1; i <= lenA; i++) {
a[i] = A[i - 1] - '0';
}
//试除法
for (int i = 1; i <= lenA; i++) {
c[i] = (x * 10 + a[i]) / b;
x = (x * 10 + a[i]) % b;
}
int len = 1;
while (c[len] == 0 && len < lenA)
len++; // 去掉前导零
for (int i = len; i <= lenA; i++)
cout << c[i];
// cout << "..." << x ;
return 0;
}