2012-05-04 57 views
2

这与使用一些嵌套for循环向数字中添加1生成连续数字列表相似,然后显示数字。我遇到麻烦的是如何在没有使用科学记数法显示数字的情况下生成10^26到10^27之间的连续数字列表。我正在考虑使用一个int [26],但是我无法弄清楚或者缠绕我的头部是如何将1添加到更高的索引(比如i [25]),一旦我达到10并继续计数直至达到10^27。如何生成大于bigint大小的连续数字列表?

+5

1^26和1^27都等于1.您的意思是2^26和2^27? :-P – Wyzard

+1

你有必要编写自己的大数字代码吗?你可以使用大号码库吗? –

+0

如果你想将每个数字表示为int,'int [27]'而不是'int [26]'是否会工作? –

回答

2

如果你没有做超出递增数量的任何计算,考虑代表它作为一个字符串,并以同样的方法添加1你会做手工算术:

  • 初始化字符串,无论你数想要开始。
  • 将1添加到最右边的(数字)字符。
  • 如果是< ='9',说明您已完成。
  • 否则,将其设置为'0'并将1添加到左侧的下一个字符。
  • 重复搬运过程,直到完成。
+3

可能最适合将其表示为'char []'或者'StringBuilder'。 –

0

我不确定你的意思是大于Bigint,你的意思是System.Uint64System.Numerics.BigInteger?如果您的意思是BigInteger,则大小上的唯一限制是OutOfMemory异常,当处理大量数字时可能会引发异常。

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