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)
