c++ - 在大于 unsigned long long 的数字上中断循环

标签 c++ c

我有n个类型为unsigned long long 和 c/c++ 中的循环

while( n < ULLONG_MAX ){
...
n += revert( n );
}

我需要在它变大之前输出最后一个n,有没有办法可以验证并打破循环?因为我一直输出相同的大数字,但小于 ULLONG_MAX

最佳答案

如果nunsigned long long然后n <= ULLONG_MAX永远正确。

如果你知道revert总是返回一个正数,您可以检查是否 n + revert( n )< n (即,检查环绕)。或者还检查 revert(n) < ULLONG_MAX - n .

关于c++ - 在大于 unsigned long long 的数字上中断循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988216/

相关文章:

c++ - QPointer::clear() 是否删除其引用的指针,或者 "Clears this QPointer object."是否有其他含义?

c++ - 为什么虚拟函数在分配给 'new' 时不能未实现?

c - C 语言中冒泡排序算法的运行时

C 拼写检查、字符串概念、算法

来自堆栈分配的 C++ std::bad_alloc?

c++ - 在c中生成解析树

c++ - 前向声明继承信息

c++ - C/C++ 中字符的大小 ('a' )

c - 使用结构体中定义的类型作为结构体内部函数参数的类型

python - 使用 ctypes 使用 Ctrl-C 中断 Python C 扩展