这是一个简单的高精度除法。
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
char arr[1000];
int main(){
int x;
cin >> arr >> x;//输入被除数和除数
int i = strlen(arr)-1;
int *result = new int[i + 1];//结果数组用到了动态管理内存
if(arr[0]-'0'<x&&strlen(arr)==1){//特判被除数是否小于除数
cout<<"0 "<<arr[0];
return 0;
}
int mod = 0;//余数
for (int j = 0; j <= i; j++){
if (j == 0){//先特别处理第一位
mod = (arr[j]-'0') % x;
result[j]=(arr[j]-'0')/ x;
}
else{//模拟除法
result[j] = (mod * 10 + (arr[j] - '0')) / x;
mod = (mod * 10 + (arr[j] - '0')) % x;
}
}
if (result[0] != 0){//输出
cout << result[0];
}
for (int k = 1; k < i + 1; k++){
cout << result[k];
}
cout << " " << mod;
delete []result;
return 0;
}