乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT乙级BasicLevelPractice 1017 A除以B
问题分析
题目给定一个大正整数A, 一个1位正整数B, 要求输出A除以B的商数Q和余数R.
从数学的角度, 商数Q和余数R可以直接由除法求得. 但显然这道题目有无法直接进行除法得到结果的因素: 整数过大, 用整型存储会导致数值溢出
于是我们可以想到用字符串存储大整数(也可以用整型数组存储各个数位上的数字, 但是读数的时候会麻烦些, 需要按照字符读入然后转换成数字)
然后模拟除法来求得商数和余数.
模拟除法
回到小学数学的"短除法", 形式如下:
__3_____ __33____
3/ 100 3/ 100
9 -> 9
------- -------
1 10
9
-------
1