输入和存储大数字

时间:2017-02-17 05:54:19

标签: c++ largenumber

这是一个使用c ++的类的项目。输入必须从用户从控制台获取,不得以字符串或字符输入。不允许使用外部库,只有我自己的代码。必须使用int类型(允许的数组或指针,无向量)进行排序。

假设用户输入了512位数字(例如RSA密钥)。没有字符串输入或转换是有问题的。有没有办法将给定的数字的每个9位数存储在动态int数组元素中?

std::cin >> stringNumber;
// Assume validation
int arraySize = (stringNumber.length() / 9) + 1;
int* num = new int[arraySize];
for ( int i = 0; i < (arraySize - 1); i++ ) {
    num[i] = toInt(stringNumber.substr((i * 9), 9));
}
// Sets last element, assume toInt converts numbers in string to int
num[arraySize - 1] = toInt(stringNumber.substr((arraySize - 1) * 9, (arraySize - 1) % 9);

上面是一个快速的,未经测试的标记,表明这个想法如何与字符串一起使用,但删除字符串的所有用法让我一无所知。

0 个答案:

没有答案