首先我要说的是,我是一个新手,对 C# 的了解很少。
回到主题:我需要制作一个能够对非常大的整数进行加/减的程序。最初,使用 BigInt 只是发现它是不允许的。应该有一个合乎逻辑的解决方法吗?我有一个想法,使用“小学方法”,从右到左添加每个数字。
我制作了一个字符串,将其拆分为 char 数组,并从右到左添加每个数字(GetUpperBound-i)。但这似乎不起作用。
我的代码:
string s, s2;
char[] c_arr, c_arr2;
int i, erg;
s = "1234";
s2 = "5678";
c_arr = s.ToCharArray();
c_arr2 = s2.ToCharArray();
for (i = 0; i <= c_arr.GetUpperBound(0); i++)
{
erg = c_arr[c_arr.GetUpperBound(0)-i]+c_arr2[c_arr2.GetUpperBound(0)-i];
Console.Write(erg);
}
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud) t2 = (\x y z-> x.y.x)
GHCI告诉我这个:
t2 :: (b1 -> b2) -> (b2 -> b1) -> p -> b1 -> b2
我无法理解这种类型的签名是如何形成的.到目前为止,我已经认为r-most-x基本上是一个函数,它接受a b2并返回a b1,那么这b1是中间函数的输入y,并b2再次输出?它不应该返回新类型的值b3或什么?
例如,如果有字符串"000001234090883450".如何删除第一个"0"通常我会使用substring然后使用string.Remove删除前五个"0".但它会切断字符串中的所有"0".是否有可能只删除前五个"0",剩下的字符串完好无损?
编辑:如果我不够具体,我道歉.我想说的是该字符串中"0"的数量不是常数."0"是用户输入,因此下次可能是:"000123325435043540035"