第六届蓝桥杯试题c/c++B组7
牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
#include<iostream> using namespace std; int main() { int s=0, arr[13]; for ( arr[0]=0; arr[0]<=4; arr[0]++) for ( arr[1]=0; arr[1]<=4; arr[1]++) for ( arr[2]=0; arr[2]<=4; arr[2]++) for ( arr[3]=0; arr[3]<=4; arr[3]++) for ( arr[4]=0; arr[4]<=4; arr[4]++) for ( arr[5]=0; arr[5]<=4; arr[5]++) for ( arr[6]=0; arr[6]<=4; arr[6]++) for ( arr[7]=0; arr[7]<=4; arr[7]++) for ( arr[8]=0; arr[8]<=4; arr[8]++) for ( arr[9]=0; arr[9]<=4; arr[9]++) for ( arr[10]=0; arr[10]<=4; arr[10]++) for ( arr[11]=0; arr[11]<=4; arr[11]++) for ( arr[12]=0; arr[12]<=4; arr[12]++){ if (arr[0]+arr[1]+arr[2]+arr[3]+arr[4]+arr[5]+arr[6]+arr[7]+arr[8]+arr[9]+arr[10]+arr[11]+arr[12]==13){ s++; } } cout<<s<<endl; }
#include<iostream>
using namespace std;
int s=0, sum=0;
void DFS(int i){
if (sum>13) return ;
if (i==14){
if (sum==13){
s++;
return ;
}
}
else{
for (int j=0; j<=4; j++){
sum+=j;//记录有几张牌
DFS(i+1);
sum-=j;
}
}
}
int main() {
DFS(1);
cout<<s;
}

浙公网安备 33010602011771号