我有一個數組,我想向後滾動它的位置。向後滾動圓形陣列
我有一個布爾數組,我需要計算從給定單元格向前和向後有多少個真值。
我知道如果N是數組中元素的數量,我可以繼續做i =(i + 1)%N。 但是如果我需要以相反的方式滾動它呢?
預先感謝您。
我有一個數組,我想向後滾動它的位置。向後滾動圓形陣列
我有一個布爾數組,我需要計算從給定單元格向前和向後有多少個真值。
我知道如果N是數組中元素的數量,我可以繼續做i =(i + 1)%N。 但是如果我需要以相反的方式滾動它呢?
預先感謝您。
這應做到:
i--;
if (i == -1)
i = N-1;
或在1線:
i = ((i-1 == -1) ? N-1 : i-1);
但上述噪音的變化可能是更好的。 一個相關的if語句版本:
if (i == 0)
i = N-1;
else
i--;
一個相關的1行版本:
i = (i == 0 ? N-1 : i-1)
如何i = (i == 0 ? N : i) - 1
?
我通常使用i = (i - 1 + N) % N
來防止負值。
減1而不是加1 ... – beny23 2013-03-17 15:51:18
如果i = 0,則(i-1)%N結果爲-1 – 2013-03-17 15:53:08