我正在编写一个处理卡片和手牌的程序。一只手有5张牌。我想知道什么是一个很好的算法,用于决定哪种卡组合加起来为15.国王,皇后区,杰克,数为10,Ace计为1。
答案 0 :(得分:1)
这与子集和非常相似,我最近在这里回答:Subset Sum algorithm
您需要做的唯一调整是跟踪用于从possible[i]
到possible[i+n]
的卡片。您可以使用第二个数组跟踪这些数据,然后将其称为card_used
,然后将card_used[i+n]
设置为用于从i
到i+n
的卡的参考/索引。然后在最后,您可以通过回溯列表possible[15]
来检索用于获得总和15的卡片(假设card_used
为真)。
答案 1 :(得分:0)
1)握手
2)通过手循环
2a)每次迭代,将汽车的价值加到运行总计中。
2b)如果你达到15以上,你可以退出这个迭代