如何生成一个大于bigint大小的连续数字列表?

时间:2012-05-04 02:03:42

标签: c#

这类似于使用一些嵌套的for循环生成连续数字列表以将1添加到数字,然后显示数字。我遇到的问题是弄清楚如何在不使用科学记数法显示数字的情况下生成介于10 ^ 26和10 ^ 27之间的连续数字列表。我正在考虑使用int [26],但我无法弄清楚或包围我是如何在我达到10并继续计算到达10 ^ 27。

2 个答案:

答案 0 :(得分:2)

如果除了递增数字之外没有进行任何计算,请考虑将其表示为字符串并以与手动算术相同的方式添加1:

  • 将字符串初始化为您想要开头的任何数字。
  • 将1添加到最右边(数字)字符。
  • 如果它是< ='9'你已经完成了。
  • 否则,将其设置为“0”并将1添加到左侧的下一个字符。
  • 重复搬运过程,直至完成。

答案 1 :(得分:0)

我不确定你的意思是大于Bigint,你的意思是System.Uint64还是System.Numerics.BigInteger?如果你的意思是BigInteger,那么对大小的唯一限制就是OutOfMemory异常,当处理大量数字时可能会抛出异常。

请注意,BigInteger是不可变的,因此像myBigInt++这样的事情会创建一个新对象,并且如果处于紧密循环中会导致性能问题。有关详细信息,请参阅主题MSDN's notes