依据竖式除法的计算,由高位至低位取余数
#include <bits/stdc++.h>
using namespace std;
long long a[10001],b,c[10001]; //被除数、除数、商
int main(){
string sa;
cin >> sa >> b; //读被除数、除数
int len = sa.size(); //被除数的位数
for (int i = 1;i <= len;i++)
a[i] = sa[i - 1] - '0'; //将被除数一位一位放入a数组
long long d = 0; //余数
for (int i = 1;i <= len;i++) { //被除数一位一位除以除数,若不够除,借
c[i] = (d * 10 + a[i])/b;
d = (d * 10 + a[i]) % b;
}
int lenc = 1; //商的位数
while (c[lenc] == 0 && lenc < len) lenc++; //删除前导0
for (int i = lenc;i <= len;i++) cout << c[i]; //输出结果
return 0;
}