蚊子打大炮
2024-01-21 17:57:04
发布于:广东
49阅读
0回复
0点赞
#include <iostream>
#include <cstring>
using namespace std;
char A[1005], B[1005];
int a[1005], b[1005], c[1005], tmp[1005];
short cmp(int *a, int *b){
if(a[0] < b[0]) return -1;
if(a[0] > b[0]) return 1;
for(int i = a[0]; i >= 1; i--){
if(a[i] > b[i]) return 1;
if(a[i] < b[i]) return -1;
}return 0;
}short numcpy(int *a, int *b, int dst){
for(int i = 1; i <= a[0]; i++){
b[i + dst - 1] = a[i];
}b[0] = a[0] + dst - 1;
}
int main(){
cin >> A >> B;
a[0] = strlen(A), b[0] = strlen(B);
for(int i = 0; i < a[0]; i++) a[a[0] - i] = A[i] - '0';
for(int i = 0; i < b[0]; i++) b[b[0] - i] = B[i] - '0';
if(cmp(a, b) == -1){
cout << 0 << endl << A;
return 0;
}
c[0] = a[0] - b[0] + 1;
for(int i = c[0]; i >= 1; i--){
memset(tmp, 0, sizeof(tmp));
numcpy(b, tmp, i);
while(cmp(a, tmp) >= 0){
c[i]++;
for(int j = 1; j <= a[0]; j++){
if(a[j] < tmp[j]){
a[j + 1]--;
a[j] += 10;
}a[j] -= tmp[j];
}while(a[a[0]] == 0 && a[0] > 1) a[0]--;
}
}while(c[0] > 1 && c[c[0]] == 0) c[0]--;
for(int i = c[0]; i > 0; i--) cout << c[i];
cout << endl;
for(int i = a[0]; i > 0; i--) cout << a[i];
return 0;
}
这里空空如也
有帮助,赞一个