如何输入1000位整数

时间:2013-07-10 08:58:44

标签: c

所以我正在使用SPOJ [C language]并解决一些初始问题,然后输入一个大到500-1000位的数字。

我所做的是将数据输入到字符数组中,并将每个数字存储为字符。但是现在如果我必须对输入进行一些数学计算,我必须将每个输入视为一个字符,然后从中减去48 [ASCII为0],然后逐位计算出问题。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

最大的优化是使用base 256将数字表示为字节数组,因此数字是(使用^作为指数):

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

这样你使用的内存最少。

在现实生活中,您可以使用GMP,这是一个开源的大数字库。