蚊子打大炮
2024-01-21 17:57:04
发布于:广东
102阅读
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;
}
全部评论 1
6
2024-12-28 来自 广东
0










有帮助,赞一个