2014-02-20 29 views
0

這是從codeeval問題:「職位是基於1的意思」是什麼?

給定數量n和兩個整數P1,P2確定是否在位置p1和p2的位是相同的或不。位置p1和p2是基於1的。

什麼是位置p1和p2是基於1的是什麼意思?

+2

我想這意味着第一比特位置是1,第二2等而不是0,1 .. – OK11

回答

2

這意味着第一(最低)位爲1位,而不是位0

例如,如果n爲23,p1爲2,和p2是4,則回答是,位是不同的。因爲二進制中的23是10111,其中第2位是1,而第4位是0.

如果位置編號是基於0而非常常見的,那麼答案就是位是同樣,因爲該方案中的比特2和4都是1。

POSITIONS, 1-BASED: 5 4 3 2 1  # bit 4 is a 0 and bit 2 is a 1 
      VALUES: 1 0 1 1 1 
POSITIONS, 0-BASED: 4 3 2 1 0  # bit 4 and bit 2 are both 1's 
+0

所以我用((INT(LINE1 [0])>> P1-1) - 1 )允許基於1的頭寸? –

+0

當然,使用基於1的計數,'(n >>(p1-1))&1'會得到'n'內位'p1'的值。 –

+0

感謝您的幫助。 –