c++ - 保持数字不小于零的数学运算

标签 c++ math numbers limit operation

在编程中,模数有助于将数字保持在不超过上限的范围内。

例如:

int value = 0;
for (int x=0; x<100; x++)
    cout << value++%8 << " "; //Keeps number in range 0-7

输出: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7...


现在考虑这种情况:

int value = 5;
for (int x=0; x<100; x++)
    cout << value-- << " ";

输出:5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7...

我的问题是:如何使用任何条件语句(如 if 或 switch case)将下限设置为 0 WITHOUT

我想要的输出:5 4 3 2 1 0 0 0 0 0 0 0 ...

最佳答案

std::max 怎么样?

int value = 5;
for (int x=0; x<100; x++) {
    cout << value << " ";
    value = std::max(0, --value);
}

关于c++ - 保持数字不小于零的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22841436/

相关文章:

c++ - 通用功能的最佳方法

java - 在数字数组上执行算术而无需迭代

c# - 如何计算单个点质量?

math - 模数到底是如何工作的?

javascript - 如何将包含科学记数法的字符串转换为正确的 Javascript 数字格式

c++ - 使用 C++ 程序删除 unix 共享内存段

c++ - 全局命名空间(C++)中的两个函数没有命名冲突?

c++ - 如何使用 QStyle.drawControl() 呈现红色按钮?

C - 找出数字的 a^2+b^2

ios - 在 iOS 中控制可访问性语音读出数字