Clean, efficient algorithm for wrapping integers in C++

后端 未结 14 2063
慢半拍i
慢半拍i 2020-12-13 09:21
/**
  * Returns a number between kLowerBound and kUpperBound
  * e.g.: Wrap(-1, 0, 4); // Returns 4
  * e.g.: Wrap(5, 0, 4); // Returns 0      
  */
int Wrap(int con         


        
14条回答
  •  情书的邮戳
    2020-12-13 10:09

    For negative kX, you can add:

    int temp = kUpperBound - kLowerBound + 1;
    while (kX < 0) kX += temp;
    return kX%temp + kLowerBound;
    

提交回复
热议问题