所以我需要编写一个程序来对这个文本文件中的数字求和:
3
22 5126717910121751622546 29 88888888888888888888888888888 40 2525255125133485451578436833138834387837
第一行显示行数,下面的行是我需要求和的数字。下列任意一行中的第一个数字表示第二个数字的位数。
输出文件应该像这样:
2525255125222374345594043632149474899271
我发现我必须使用多维数组。我是c++的新手,不习惯多维数组,所以我需要一些帮助。提前感谢!注:如果我的英语不好,我很抱歉。
由于这些整数相当大,您需要将它们存储在string中,并为这些字符串(实际上是大整数)定义操作符+
您可以执行以下操作来将它们存储在1D vector中,因为如果您真正执行BigInteger add,则"位数"不相关。同时,您只输出和而不是结果中的位数。
vector<string> data;
ifstream dataFile("dataInput.txt"); //or you can use stringstream
long numbers = 0;
dataFile >> numbers;
long digits = 0;
string currentNum;
while (dataFile >> digits >> currentNum)
{
data.push_back(currentNum);
}
//now add those integers
Add for BigInteger很简单