2013-07-10 67 views
0

所以我在SPOJ [C language]並解決了一些初始問題,因爲它說輸入的數字大到500-1000位。如何輸入整數的1000位

我所做的是將數據輸入到字符數組中並將每個數字存儲爲字符。但是現在,如果我必須對輸入進行一些數學計算,我必須將每個輸入視爲一個字符,然後從中減去48 [ASCII爲0],然後逐位計算出問題。

有沒有更好的方法來做到這一點?

回答

2

最大優化。將表示作爲字節數組的數目,使用基256,所以數量(使用^作爲求冪):

N = n[0]*256^0 + n[1]*256^1 + n[2]*256^2 + ... 

使用至少存儲的方式。

在現實生活中,您可以使用GMP,這是一個開源的大數據庫。

+0

你能解釋一點嗎?我們在這裏做什麼? – Kraken

+0

而不是每個字節都是從0到9的數字,每個字節是從0-255的基本256'數字'。你知道數字系統嗎?像二進制,八進制,十六進制? – sashoalm

+0

我的N和n是什麼? – Kraken