华为机试——扑克牌
2015-09-29 11:36
183 查看
华为机试——扑克牌
一副牌中发五张扑克牌给你,让你判断数字的组成:
有一下几种情况:
1.四条:即四章一样数值的牌(牌均不论花色)
2.三条带一对
3.三条带两张不同数值的牌
4.两对
5.顺子 包括10,J,Q,K,A
6.什么都不是
7.只有一对。
#include<iostream> #include<string> #include<algorithm> using namespace std; int main() { string str; cin>>str; int flag; int num[5],m=0; for(int i=0;i<str.size()&&m<5;i++) { if(str[i]>='2' && str[i]<='9') num[m++]=str[i]-'0'; else if(str[i]=='1'&& str[i+1]=='0') { num[m++]=10; i++; } else if(str[i]=='J' ||str[i]=='j') num[m++]=11; else if(str[i]=='Q'||str[i]=='q') num[m++]=12; else if(str[i]=='K' || str[i]=='k') num[m++]=13; else if(str[i]=='A' || str[i] =='a') num[m++]=14; else { cout<<"输入错误"<<endl; return 0; } } sort(num,num+5); if(num[0]==num[3] || num[1]==num[4]) flag=1; else if((num[0]==num[2] && num[3]==num[4])||(num[2]==num[4] &&num[0]==num[1])) flag=2; else if((num[0]==num[2] && num[3]!=num[4])||(num[1]==num[3] && num[0]!=num[4])||(num[2]==num[4] && num[0]!=num[1])) flag=3; else if((num[0]==num[1] && num[3]==num[4])||(num[0]==num[1] && num[2]==num[3])||(num[1] ==num[2] && num[3]==num[4])) flag=4; else if(num[0]-num[4]==4) flag=5; else if(num[0]==num[1] ||num[1]==num[2] ||num[3]==num[4] ||num[3]==num[4]) flag=7; else flag=6; cout<<flag<<endl; }
相关文章推荐
- Spring MVC textbox example
- 杂乱小知识点总结
- iOS 使用AVFoundation 扫描二维码并限定扫描区域(带代码生成蒙版)
- 7款jQuery图片轮播滑动插件
- java 23种设计模式学习。
- SDWebImageManager.m:244:22: Too many arguments to function call, expected 0,have 5
- 搭建discuz论坛
- 查询操作系统版本信息
- UML项目完成总结
- 黑马程序员—面向对象(下)
- Java知识点梳理内部类
- 基础数学
- [Java][读书笔记]多线程编程
- java &&与||短路的详解
- Hdu 5464 Clarke and problem (dp)
- 摸索着的坚持!!!!2015年9月29日13:14
- Android studio意外问题的解决方式
- OpenGL教程翻译 第二十课 点光源
- 正方形矩阵旋转90度
- 手势相关