1017. A除以B (20)
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:123456789050987654321 7输出样例:
17636684150141093474 3
这个题目可以很简单,也可以很难。简单的考虑就是对每一位字符进行处理,就像我们做除法一样~这样想就很简单啦。特别要注意前一个数字只有一位、且比后一个数字小的情况,
要正确进行处理~~
using System; namespace PAT { class Program { static void Main(string[] args) { string input = Console.ReadLine(); string longNum = input.Split(' ')[0]; int shortNum = int.Parse(input.Split(' ')[1]); int rest = 0; int startIndex = 0; int dividend; int result; if (longNum[0] - '0' < shortNum && longNum.Length > 1) //长度为1的字符串是种特殊情形 { startIndex = 1; rest = longNum[0] - '0'; } for (int i = startIndex; i < longNum.Length; i++) { dividend = 10 * rest + longNum[i] - '0'; //被除数 result = dividend / shortNum; rest = dividend - result * shortNum; Console.Write(result); } Console.Write(" {0}", rest); } } }