PTA 1017 A除以B (20 分) C#
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3 题目比较简单,由于题中已经说明A是不超过1000位的正整数,那么在C#中用现有的数据类型来直接表示数据A是肯定行不通的,于是小子决定A就用string型来解决,代码如下。 using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace _1017 { class Program { static void Main(string[] args) { while (true) { string strIN = Console.ReadLine(); // var strArr = strIN.Split(' ',StringSplitOptions.RemoveEmptyEntries); //List<string> listStr = new List<string>(); //foreach (var item in strArr) //{ // if (item!="") // { // listStr.Add(item); // } //} var strArr = strIN.Split(' '); char[] str1 = strArr[0].ToCharArray(); int B = int.Parse(strArr[1]); int R = 0; string Q = string.Empty; foreach (var str in str1) { string A = R.ToString() + str.ToString();//小子用这种方式来获取,当然也可将余数R*10+str的数字来解决 R = int.Parse(A) % B; Q += (int)(int.Parse(A) / B); } if (Q.Substring(0, 1) == "0" && str1.Length>1)//主要是要考虑若A也为1位正整数,并且A<B,那么商肯定是0,并且余数R=A的情况 { Q = Q.Substring(1); } Console.WriteLine(Q + " " + R); } } } }
赞 (0)