采取大整数输入

时间:2015-08-12 13:09:18

标签: c++ arrays integer

我想创建一个程序,它可以处理大于C ++ int可以存储的整数。

我想首先将用户输入的整数存储在integer数组中,使得输入数字的每个数字都存储在每个数组插槽中,比如968,它应该最终存储在数组中arr[0] is 9, arr[1] is 6, arr[2] is 8。相反,这次用户将输入一个very huge number,其中包含1000个数字,我必须以某种方式将其存储在整数数组中,每个数组元素中的每个数字都如上所述。 那么有人可以解释一下big int library的用法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用std::string对象。

每个字符都在'0''9'之间,您可以使用它来进行计算。

例如,计算两个数字的前两位数之和

int sum = (a[0] - '0') + (b[0] - '0');

提示:如果你保留num[0]最小的数字(即通常写入最右边的位置),编写计算算法会容易一些。

答案 1 :(得分:0)

  

相反,这次用户将输入一个非常大的数字,比如说1000个数字,我必须以某种方式将它存储在一个整数数组中,每个数组元素中的每个数字都如上所述

答案:分配动态内存。

int variableSize;
char* theNumber;
std::cout << "What is your preferred size? ";
std::cin >> variableSize; /* do some error checking if necessary*/
int* myNumber = new int[variableSize];
std::cout << "Input the number now: ";
std::cin >> theNumber;
/* use a for loop to put each char into its respective array location;
do not forget to convert char to int... */

喜欢使用std::vector(存储动态内存的首选方式)?这是方法:

int variableSize;
char* theNumber;
std::cout << "What is your preferred size? ";
std::cin >> variableSize; /* do some error checking if necessary*/
std::vector<int> myNumber(variableSize);
std::cout << "Input the number now: ";
std::cin >> theNumber;
/* use a for loop to put each char into its respective array location;
do not forget to convert char to int... */