MENU

第六届蓝桥杯 Java A—— 牌型种数

March 11, 2019 • Read: 3354 • 算法阅读设置

小明被劫持到 X 赌城,被迫与其他 3 人玩牌。
一副扑克牌(去掉大小王牌,共 52 张),均匀发给 4 个人,每个人 13 张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

  • public class Main {
  • static long ans = 0;
  • public static void main(String[] args) {
  • dfs(0, 0);
  • System.out.println(ans);
  • }
  • static void dfs(int idx, int cnt) {
  • if (cnt > 13 || idx > 13)
  • return;
  • if (idx == 13 && cnt == 13) {
  • ans++;
  • return;
  • } else {
  • for (int i = 0; i <= 4; i++) // 每种牌可以抓0-4张
  • dfs(idx + 1, cnt + i);
  • }
  • }
  • }
Archives Tip
QR Code for this page
Tipping QR Code