我有這樣的算法,該算法用於甲板52卡,讓我們說i=10
:算法卡的甲板
int suit = i/13;
int cardValue = i % 13;
suit
是from 0 to 3
爲紅桃,方塊,黑桃,梅花cardValue
是from 0 to 12
的王牌,2,3,...,傑克,國王,王后
如何從已知suit
並推導cardValue
找回i
?
我有這樣的算法,該算法用於甲板52卡,讓我們說i=10
:算法卡的甲板
int suit = i/13;
int cardValue = i % 13;
suit
是from 0 to 3
爲紅桃,方塊,黑桃,梅花cardValue
是from 0 to 12
的王牌,2,3,...,傑克,國王,王后如何從已知suit
並推導cardValue
找回i
?
我不完全知道你是問什麼,但如果這只是獲得「我」從具有suit
和cardValue
,這個會做:
int i = suit * 13 + cardValue;
這是不正確的? int i = suit * 13 +(cardValue-1) – EM10 2013-05-11 17:31:07
不,這是不正確的,舉一個例子,27。西裝將是27/15(整數除法),這會給你一個2的套裝cardValue會餘數爲1(2 * 13 = 26,27-26 = 1)。如果你把它寫入你的表達式,你會得到:2 * 13 +(1 - 1),這會給你26,而不是原來的值。另外,這個測試非常簡單,你應該多做一點實驗,你會很容易看到你的表情會給你錯誤的結果。 – 2013-05-11 17:40:29
變量i永遠不會改變在此代碼。如果它從10開始,它將保持爲10.您只是臨時更改賦值的值。
好,如果你想要做的就是從某種方法獲得「我」,使用'return i;'會做的伎倆,但你需要發佈一些關於代碼片段位置以及如何調用的代碼。 – Nomad101 2013-05-11 17:25:37
請提供詳細信息以獲得正確答案! – 2013-05-11 17:27:04