c++ - 在 C++ for 循环中使用除 int 以外的数据类型作为索引值

标签 c++ c loops type-conversion

我正在接受用户作为浮点值的输入。

此值最高可达“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/

相关文章:

C++ program.exe 从二进制文件读取后停止工作

c++ - 使用 pthread 进行线程化

c++ - size_t 是字长吗?

ios - 有没有一种经典的或很好的方法可以将不同的指令应用于循环的第一个或最后一个元素?

java - 从 Hazelcast map 中删除元素的正确方法是什么?

c++ - 如何为 Objective C 编写 C++ 处理类

c++ - 包含派生对象的 QPointer 不会与基类匹配

mysql - 随机考虑他们的发帖用户(mysql)

使用随机数创建一个集群

c++ - 在 C 中计算 PI 最有效的方法是什么?