断开循环,超过长时间的未签名
Break loop on greater number then unsigned long long
我有 type unsigned long long
的n和c/c
while( n < ULLONG_MAX ){
...
n += revert( n );
}
我需要在最后n个变大之前输出它,有没有办法验证和打破循环?因为我一直都会输出相同的数字,但更少的是ullong_max
如果 n
是 unsigned long long
,则 n <= ULLONG_MAX
始终是正确的。
如果您知道revert
始终返回一个正数,则可以检查n + revert( n )
是否为< n
(即检查包裹)。或还检查revert(n) < ULLONG_MAX - n
。
您永远无法使用unsigned long long
输出比ULLONG_MAX
大的数字来存储您的值。
如果您很幸运,您的功能revert
将使您与n
的值与ULLONG_MAX
(std::numeric_limits<unsigned long long>::max ()
)完全相同,但是尝试提高任何更高的值只会从零开始(所谓的 integer溢出))..
您可以执行以下操作以检查包装:
if (n > (n + revert (n)))
break; // max of 'n += revert (n)' found
以上要求"还原"总是返回一个正数,当然
相关文章:
- 使用Boost Interprocess创建托管共享内存需要很长时间
- SFML RenderWindow打开窗口需要很长时间
- Kafka C++客户端需要很长时间才能收到消息
- 给定使用 C++ 或 C,我如何测量在 linux 下进行线程切换需要多长时间?可能吗?
- asio::read() 需要很长时间,使用 asio::write 没有问题
- 将线程锁定很长时间
- 尝试创建一个程序来查找非二叉树的高度.最终得到一个很长的循环,没有答案
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- 即使长时间等待,C++线程也不会加入
- 连接() 在连接被拒绝时长时间挂起
- 为什么这段代码需要这么长时间才能用 g++ 编译?
- 如何在长时间运行的方法中等待信号?
- mbed 套接字连接需要很长时间
- 在关闭应用程序期间正确关闭线程,该线程可能会运行很长时间的循环
- 一个循环,可以打印所有项目(无论链条多长时间) *指针
- 断开循环,超过长时间的未签名
- 为什么具有多个嵌套循环的代码可以在 GCC 上立即完成,但在 VS 上需要很长时间
- 如何向编译器提供有关循环运行最长时间的提示
- 为什么for循环要花这么长时间
- 开始一个for循环需要多长时间