高精除低精
内存限制: 256 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较
题目描述
输入两个非负整数 ,求 a / b
输入格式
两个数 a,b
输出格式
一个数,为 a / b的结果及余数
样例
输入样例
复制19191919191919191919
2333
输出样例
复制8226283408452289 1682
数据范围与提示
a 的长度 <= 5000,且无多余的前导零
1 <= b <= 1000000000
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5005;
char a[maxn];
long long A[maxn], B, C[maxn * 2];
int main() {
scanf("%s\n%d", a, &B);
int lena = strlen(a);
for(int i = 0; i < lena; i++) {
A[i] = a[i] - '0';
}
long long x = 0;
for(int j = 0; j < lena; j++) {
A[j] = x * 10 + A[j];
C[j] = A[j] / B;
x = A[j] % B;
}
int i = 0;
while(C[i] == 0 && i < lena - 1) {
i++;
}
while(i < lena) {
printf("%d", C[i++]);
}
printf(" %d", x);
return 0;
}