2013-05-11 54 views
-4

我有這樣的算法,該算法用於甲板52卡,讓我們說i=10算法卡的甲板

int suit = i/13; 
int cardValue = i % 13; 
  • suitfrom 0 to 3爲紅桃,方塊,黑桃,梅花
  • cardValuefrom 0 to 12的王牌,2,3,...,傑克,國王,王后

如何從已知suit並推導cardValue找回i

+0

好,如果你想要做的就是從某種方法獲得「我」,使用'return i;'會做的伎倆,但你需要發佈一些關於代碼片段位置以及如何調用的代碼。 – Nomad101 2013-05-11 17:25:37

+0

請提供詳細信息以獲得正確答案! – 2013-05-11 17:27:04

回答

5

我不完全知道你是問什麼,但如果這只是獲得「我」從具有suitcardValue,這個會做:

int i = suit * 13 + cardValue; 
+0

這是不正確的? int i = suit * 13 +(cardValue-1) – EM10 2013-05-11 17:31:07

+0

不,這是不正確的,舉一個例子,27。西裝將是27/15(整數除法),這會給你一個2的套裝cardValue會餘數爲1(2 * 13 = 26,27-26 = 1)。如果你把它寫入你的表達式,你會得到:2 * 13 +(1 - 1),這會給你26,而不是原來的值。另外,這個測試非常簡單,你應該多做一點實驗,你會很容易看到你的表情會給你錯誤的結果。 – 2013-05-11 17:40:29

0

變量i永遠不會改變在此代碼。如果它從10開始,它將保持爲10.您只是臨時更改賦值的值。