我正在接受用户作为浮点值的输入。
此值最高可达“10 的 18 次幂”。
下一步是找出这个数的所有约数。为此,我正在执行以下操作:
for(i=2; i<=n/2 ; i++)
{
if(n%i==0)
v.push_back(i);
}
这里,n是用户输入的数字。
问题是 n 是 float ,在 if 循环索引中使用它会导致它的值被限制为“10 的 9 次方”
因此,有什么方法可以使用 int 以外的数据类型来使用范围“10 的 18 次幂”的值吗?
最佳答案
您可以使用 unsigned long long
,它是 264 或大约 1019
这假定您的编译器支持 64 位整数。
关于c++ - 在 C++ for 循环中使用除 int 以外的数据类型作为索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346282/