本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R, 使得A = B * Q + R成立。 输入格式 输入在1行中依次给出A和B,中间以1空格分隔。 输出格式 在1行中依次输出Q和R,中间以1空格分隔。 输入样例 123456789050987654321 7 输出样例 17636684150141093474 3 分析:模拟手动除法的过程,每次用第一位去除以B,如果得到的商不是0就输出,否则就*10+下一位,直到最后的数为余数~
#includeusing namespace std; int main() { int b;//除数 string s,s1;//被除数 输出结果 cin >> s >> b; int temp = 0;//商 int temp1 = 0;//余数 for(int i = 0; i < s.size();i++){ int a = s[i] - '0';//单个字符变数字 a = 10 * temp1 + a;//取余数的10倍+商 temp = a / b; temp1 = a % b; s1 += temp + '0';//数字变字符 } if(s1[0] == '0' && s1.size() > 1) s1 = s1.substr(1);//当s1长度大于1且首字符为0时 忽略首0 cout << s1 << " " << temp1; }



