2012-05-04 58 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以瞭解更多信息