我如何用C长度高达100位或更多来表示(存储)大数字?
或者。,
有没有办法将一个系列存储在变量中(而不是数组,因为我必须自己创建一个系列数组)
答案 0 :(得分:-1)
你可以通过将数字存储为字符串来实现,这里是一个例子,用于对那种反复数据的数字进行求和(它在c ++中,但应该很容易将其转换为c):
string add (string &s1, string &s2){
int carry=0,sum,i;
string min=s1,
max=s2,
result = "";
if (s1.length()>s2.length()){
max = s1;
min = s2;
} else {
max = s2;
min = s1;
}
for (i = min.length()-1; i>=0; i--){
sum = min[i] + max[i + max.length() - min.length()] + carry - 2*'0';
carry = sum/10;
sum %=10;
result = (char)(sum + '0') + result;
}
i = max.length() - min.length()-1;
while (i>=0){
sum = max[i] + carry - '0';
carry = sum/10;
sum%=10;
result = (char)(sum + '0') + result;
i--;
}
if (carry!=0){
result = (char)(carry + '0') + result;
}
return result;
}