天天看点

PAT乙级 1017 A除以B (大整数运算)

题目内容

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以 1 空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

解题思路

(1)数字为超大整数,无法使用int型存储,只能使用字符串进行存储

(2)依据除法规则,从第一位开始除,设置两个变量分别表示上一位的余数和余数与该位数字之和,

(3)没必要计算得到全部结果再输出,可以边处理边输出

程序源码

程序参考的柳神的思路,不再放代码。