【发布时间】:2021-01-08 12:17:17
【问题描述】:
我正在尝试逐位分解非常大的数字并将它们逐个添加(对于大数计算器)。
条件是我不应该使用任何 Math 或 BigNumbers 库,并且输入必须采用字符串。
我这样做的方式是获取字符串,将每个字符串放入(char) 的列表中,然后转换每个(char) to (int) 并执行操作,然后将结果数字改回(char),然后添加将其添加到我命名为 Result 的列表中。
我想知道如何将 (int) 更改为 (char)? "Convert.ToChar()" 不起作用,因为它将数字转换为其 Unicode 字符。 这是代码,我标记了问题:
bool carry = false;
int i = bigNumberLength - 1;
List<char> result = new List<char>();
char currentDigit;
for (int j = smallNumberLength - 1; j >= 0; j--)
{
int tempDigit1 = (int)Char.GetNumericValue(bigNumber[i]);
int tempDigit2 = (int)Char.GetNumericValue(smallNumber[j]);
if (tempDigit1 + tempDigit2 < 10)
{
if (!carry)
{
currentDigit = Convert.ToChar(tempDigit1 + tempDigit2);//this one
carry = false;
}
else
{
if (tempDigit1 + tempDigit2 + 1 < 10)
currentDigit = Convert.ToChar(tempDigit1 + tempDigit2 + 1);//this one
else
currentDigit = Convert.ToChar(0); //this one
}
result.Add(currentDigit);
}
else
{
currentDigit = Convert.ToChar((tempDigit1 + tempDigit2) - 10); //this one
carry = true;
result.Add(currentDigit);
}
i--;
}
【问题讨论】:
-
请提供您当前的代码以及确切您遇到问题的地方。
-
我假设您希望使用
int.Parse? -
@DavidG 没有图书馆我倾向于理解这应该在没有
int.Parse或类似的情况下解决。 -
当您开始谈论转换回 char 时,您失去了我。您要解决的问题是,给定数字的字符串表示形式,将所有数字相加。为什么要将任何东西转换回
char,您必须提供的答案是总和。 -
@InBetween 通过库,我认为它们不允许使用
BigInteger之类的东西,而不是 BCL 中的东西
标签: c# char integer calculator data-conversion