牌型总数——第六届蓝桥杯C语言B组(省赛)第七题
程序员文章站
2022-04-02 23:39:42
原创 牌型种数 小明被劫持到X赌城,*与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢? 请填写该整数,不要填写任何多余的内容 ......
原创
牌型种数
小明被劫持到X赌城,*与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
枚举:
一副牌可以分成13堆,每一堆4张相同的牌,因为不考虑花色,所以每堆牌有0~4共5种选择,各从13堆牌抽出牌以后
判断抽出的牌张数是否等于13,等于13满足条件牌型总数+1。
public class 牌型总数 { public static void main(String args[]) { int total=0; //记录牌型总数 int a[]=new int[13]; for(a[0]=0;a[0]<=4;a[0]++) { for(a[1]=0;a[1]<=4;a[1]++) { for(a[2]=0;a[2]<=4;a[2]++) { for(a[3]=0;a[3]<=4;a[3]++) { for(a[4]=0;a[4]<=4;a[4]++) { for(a[5]=0;a[5]<=4;a[5]++) { for(a[6]=0;a[6]<=4;a[6]++) { for(a[7]=0;a[7]<=4;a[7]++) { for(a[8]=0;a[8]<=4;a[8]++) { for(a[9]=0;a[9]<=4;a[9]++) { for(a[10]=0;a[10]<=4;a[10]++) { for(a[11]=0;a[11]<=4;a[11]++) { for(a[12]=0;a[12]<=4;a[12]++) { int flag=0; int i=0; for(i=0;i<=12;i++) { //判断是不是有13张牌 flag+=a[i]; } if(flag==13) { total++; } } } } } } } } } } } } } } System.out.println(total); } }
答案:3598180
16:43:44
2018-06-08
上一篇: python.day.03——math模块之常用函数
下一篇: 少走弯路,给Java程序员的建议