Algorithm for a deck of card
我有这个算法,用于一个有52张牌的牌组,比如说i=10:
1 2
| int suit = i / 13;
int cardValue = i % 13; |
- suit是from 0 to 3代表红心、钻石、铁锹、梅花
- cardValue是from 0 to 12表示ace,2,3,…。,杰克,国王,女王
我如何从已知的suit和cardValue中推断出返回i?
- 如果你只想从某个方法中得到"i",那么使用return i;就可以了,但是你需要发布更多的代码来说明代码片段的位置和调用方式。
- 请提供详细信息以获得正确答案!
我不完全确定你在问什么,但如果只是从拥有suit和cardValue中获得"i",这就可以做到:
1
| int i = suit * 13 + cardValue; |
- 这不正确吗?int i=套装*13+(cardvalue-1)
- 不,这是不正确的,举个例子,27。诉讼将是27/15(整数除法),这将给你一套2。cardvalue是余数,即1(2*13=26,27-26=1)。如果你把它放到你的表达式中,你会得到:2*13+(1-1),它会给你26,而不是最初的值。而且,这真的很容易测试,你应该多做一点实验,你会很容易看到你的表达会给你错误的结果。
我在这段代码中从不更改变量。如果从10开始,它将保持为10。您只是暂时更改工作分配的值。