我想创建一个程序,它可以处理大于C ++ int
可以存储的整数。
我想首先将用户输入的整数存储在integer
数组中,使得输入数字的每个数字都存储在每个数组插槽中,比如968,它应该最终存储在数组中arr[0] is 9, arr[1] is 6, arr[2] is 8
。相反,这次用户将输入一个very huge number
,其中包含1000个数字,我必须以某种方式将其存储在整数数组中,每个数组元素中的每个数字都如上所述。
那么有人可以解释一下big int library的用法吗?
答案 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... */