回复 20楼 azzbcc
谢谢你,看来看别人的东西更累,代价要高。

www.qunxingw.wang
2013-01-16 15:23

2013-01-17 12:20
程序代码:#include<iostream>
using namespace std;
int main()
{
int i,x,flat=1;
int b[14]={1,2,3,4,4,4,5,5,5,5,6,7,8,9};// 牌无需排序。
int a[10]={0};
for(i=0; i<14; i++)
{
a[b[i]-1]++; //统计每种牌的数量
}
int xi,a2[10];
for (x=0; x<10; x++) //循环找一对将牌
{
for(i=0;i<10;i++)
a2[i]=a[i];
if(a2[x]>=2 )//,除掉将牌
{
a2[x]-=2;
}
else continue;
xi=0;
flat=1;
for(i=0; i<10; i++) //找出连续或相同的三个数
{
if(a2[i]>=3)
{
a2[i]-=3;
xi+=3;
}
if((a2[i]>0)&&(i>=8))
{
flat=0;
break;
}
if(a2[i]==2)
{
if((a2[i+1]>1)&&(a2[i+2]>1))
{
a2[i]-=2;
a2[i+1]-=2;
a2[i+2]-=2;
}
else
{
flat=0;
break;
}
}
else if(a2[i]==1)
{
if((a2[i+1]>0)&&(a2[i+2]>0))
{
a2[i]--;
a2[i+1]--;
a2[i+2]--;
}
else
{
flat=0;
break;
}
}
}
if(flat==1)
break;
}
if(flat) cout<<"恭喜您!已胡牌!"<<endl;
else cout<<"对不起!不能胡牌!"<<endl;
return 0;
}

2013-01-18 23:17

2013-01-19 18:55