我只是想知道这个大数字是如何相加的?
你可以使用一个数组:
long LargeNumber[5] = { < first_10_digits>, < next_10_digits>....< last_10_digits> };
Run Code Online (Sandbox Code Playgroud)
现在你可以计算出2个大数的总和:
long tempSum = 0;
int carry = 0;
long sum[5] = {0,0,0,0,0};
for(int i = 4; i >= 0; i--)
{
tempSum = largeNum1[i] + largeNum2[i] + carry; //sum of 10 digits
if( i == 0)
sum[i] = tempSum; //No carry in case of most significant digit
else
sum[i] = tempSum % 1000000000; //Extra digits to be 'carried over'
carry = tempSum/1000000000;
}
for( int i = 0; i < 5; i++ )
cout<<setw(10)<<setfill('0')<<sum[i]<<"\n"; //Pad with '0' on the left if needed
Run Code Online (Sandbox Code Playgroud)
有没有办法将非常大的数字作为变量(不是字符串)?
没有这个原语,你可以使用任何数据结构(数组/队列/链表)并适当地处理它
我猜有一些数学方法可以解决这个问题
当然!但,
我不希望代码出现问题,因为我想为自己解决这个问题.