【发布时间】:2018-02-26 08:03:43
【问题描述】:
我一直在做一项任务,我是 C# 的初学者。我必须实现一个类似于 BigInt 可以做的程序:用两个大得离谱的值执行加法、减法或乘法(实际上不使用 BigInt 库)。有人告诉我使用 CompareTo,它可以使创建加法、减法和乘法方法变得容易,但我不知道如何实现 CompareTo。我什至不知道我的课程是否正确实施,或者我是否遗漏了一些重要的东西。 这是我的代码:
public class HugeInt
{
char sign;
public IList<int> theInt = new List<int>();
public string ToString(IList<int> theInt)
{
string bigInt = theInt.ToString();
return bigInt;
}
public HugeInt CompareTo(HugeInt num1)
{
int numParse;
string number = ToString(theInt); /// I did this to convert the List into a string
for(int i = 0; i < number.Length; i++)
{
bool temp = Int32.TryParse(number, out numParse); /// Supposed to change each index of the string to a separate integer (not sure how to properly do this)
/// These are *supposed to* perform operations on two HugeInts ///
num1.plus(numParse, num1);
num1.minus(numParse, num1);
num1.times(numParse, num1);
}
return num1;
}
我不是来为这项任务寻求所有答案的,我已经为此工作了几个小时,无法弄清楚我做错了什么——我已经做了很多谷歌搜索。提前感谢所有建议和帮助!
【问题讨论】:
-
CompareTo 用于比较对象。
InfInt是什么?您需要创建方法来执行加/减/倍操作。 -
抱歉,InfInt 是该类的原始名称,但为了更清楚起见,我将其更改为 HugeInt,但错过了一个!我的任务是比较两个 HugeInts 并获取它们之间的距离值,但它们是我转换为字符串的列表,我需要解析它们以将它们转换回单独的整数。我需要通过两个 HugeInts 吗? CompareTo 是我目前陷入困境的地方,我可以在弄清楚这一点后创建 plus/minus/times 方法。提前感谢您的帮助!
-
我猜你可能被要求使用
IComparable,它有一个名为CompareTo的方法,我建议你通读这篇文章并相应地修改你的代码msdn.microsoft.com/en-us/library/… -
原来是这样,但分配已更新,我们被告知我们没有必须使用 IComparable 接口,因此我们可以返回一个带有 CompareTo 的 HugeInt,但我不知道哪个更简单。我要调查两者。谢谢!
标签: c# list class compareto bigint