C++高精度加法
#include <iostream>
#include <cstring>
using namespace std;
struct bigNumber{
int value[100], len;
bigNumber(){
for(int i=0;i<100;i++)
value[i]=0;
len = 0;
}
bigNumber(string str){
len = str.length();
for(int i=0; i<len; i++)
value[i] = str[len-i-1]-'0';
}
void print(){
for(int i=0;i<len;i++){
cout << value[len-i-1];
}
cout << endl;
}
void fix(){
for(int i=len; i<100;i++)
value[i] = 0;
for(int i=0; i<len;i++){
value[i+1]+=value[i]/10;
value[i] = value[i]%10;
}
while(value[len])
len++;
}
bigNumber operator+(bigNumber n){
n.len = max(len, n.len);
for(int i=0; i<n.len;i++)
n.value[i] = n.value[i] + value[i];
n.fix();
return n;
}
};
int main()
{
bigNumber a, b, c;
a = string("9678");
b = string("9678");
c = a + b;
c.print();
return 0;
}