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)

相关推荐