-4

所以我需要制作一个程序来对这个文本文件中的数字求和:

3

22 5126717910121751622546

29 88888888888888888888888888888

40 2525255125133485451578436833138834387837

第一行显示行数,以下几行是我需要求和的数字。以下一行中的第一个数字显示第二个数字的位数。

输出文件应该是这样的:

2525255125222374345594043632149474899271

我发现我必须使用多维数组。我是 C++ 新手,不习惯多维数组,所以我需要一些帮助。提前致谢!PS对不起,如果我的英语不好。

4

1 回答 1

0

由于这些整数非常大,您需要将它们存储在字符串中并为这些字符串定义运算符 +(实际上是大整数)

您可以执行以下操作将它们存储在一维向量中,因为如果您真的添加 BigInteger,则“位数”不相关。同时,您只输出总和而不是结果中的位数。

   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

为 BigInteger 添加很简单。

于 2013-03-29T17:31:04.253 回答