Notice:
1.要把字符换算成int之后再进行运算,如q = (r * 10 + s[i] - '0') / b;
2.举例子让思路清晰
b = 3
s为 2,5
s为 25,56
3。超大数的情况,转换为数组进行处理
4.还是很好奇为啥可以直接用string接收整型的数据。。。
#include <iostream>
using namespace std;
int main(){
//模拟除法过程
string s;
int b,q,r,len;
cin >> s >> b;
len = s.length();
q = (s[0] - '0') / b;
if(len == 1 || (len > 1 && q != 0))//被除数只有1位的,直接输出。大于1位的,非零才输出。
cout << q;
r = (s[0] - '0') % b; //1位的情况:1位的余数; 多位的情况:为循环做准备
for(int i = 1;i < len;i++){//继续处理被除数大于1位的情况
q = (r * 10 + s[i] - '0') / b;
cout << q;
r = (r * 10 + s[i] - '0') % b;
}
cout << " " << r; //最后输出余数(1位+大于1位的余数都在这里输出)
return 0;
}