我知道itoa和sprintf可用于此任务,但所有这些都需要预先定义的int大小(如int,long int,long long int),但如果我需要添加或减去factorial of 99,也就是说存储在char字符串s [200]中; (这甚至超出了长期int的限制).....我该怎么做???
答案 0 :(得分:0)
处理如此大数字的方法之一是使用整数数组。比如
int a[200]
并在对数字执行操作时对数组执行操作,使用考虑数字的每个数字的基本算法,例如,考虑将2个数字乘以1234 * 4567,将1234存储在[]中,将4567存储在b中[]。使用临时数组c []然后,
4*7=28 so next
3*7+2(which can be computed as (int)28/10)=23
2*7+2=16
1*7+1=8
所以你在第一次迭代中得到8638将它存储在c []中然后用6即1234 * 6做同样的事情 8638 + 1234 * 6 * 10 我想现在你有了这个基本的数学。使用此类型的基本数学方法对存储在数组中的大数字执行操作。所有操作都可以通过使用这种数字级操作来实现。