1017
A除以B
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
这道题用JAVA其实挺简单的,前提是没有时间限制(笑…)(不过这里还是要吐槽一下JAVA的响应是真的慢)。
因为JAVA有一个BigInteger的数据类型,可以输入无限制位数的整数,用来解决本题是真的恰到好处。不过它要求在100MS的时间内完成计算(JAVA:不好意思,打扰了,告辞)。
然后我解决本题的思路是假设JAVA没有BigInteger这种数据类型(也就是按C的思路来解),将输入的大数按照字符串的格式读入,然后再转化成字符数组的形式,因为被除数是个位数字所以将字符串按照两个一组的形式取出然后进行计算,需要注意的是这里需要注意一下余数判断,余数为0直接跳到后面两个数接着计算,余数不为0时将留下的余数和后一位数字合在一起进行计算。简单点说就是模仿我们平时进行的竖式运算。
这里需要补充一点的是即使这样JAVA还是超时,但是按照这个思路的话C和C++都可以