给6个火柴棍,问能不能拼成“熊”或者“象”“熊”:4根棍子长度一样,另外2根棍子长度不一样“象”:4根棍子长度一样,另外2根棍子长度一样。
如果可以拼出熊,输出“Bear”如果可以拼出象,输出“Elephant”
如果都不可以拼出,输出“Hernia”
输入描述:
一行六个数表示每个火柴棍的长度
输出描述:
输出一行一个字符串表示答案
备注:
火柴棍长度在[1,9]内
注意两种特殊情况就好:
1.全都相等的时候,是Elephant
2. 5个相同1个不同时 , 是Bear
然后代码:
#include <stdio.h>
#include <cstring>
#include <stdlib.h>
#include <map>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
int t , ans = 0;
int flag = 0 , flag1 = 0 , flag2 =0,flag3 = 0 ;
int book[50];
memset(book , 0 , sizeof(book));
for(int i = 0 ; i < 6 ; i++)
{
scanf("%d" , &t);
book[t]++;
}
for(int i =0 ;i < 10;i++)
{
if(book[i] != 0)
{
// printf("book[%d] = %d\n" , i,book[i]);
ans++;
if(book[i] == 6)
{
flag2 = 1;
}
if(book[i] == 5)
{
flag3 = 1;
}
if(book[i] == 4)
{
// printf("===");
flag = 1;
// ans++;
}
if(book[i] == 2)
{
flag1 = 1;
// printf("----");
// ans++;
}
if(ans == 6)
{
break;
}
}
}
//printf("flag = %d flag1 = %d\n" , flag , flag1);
if(flag == 1 && flag1 == 1||flag2 == 1)
{
printf("Elephant\n");
}
else if(flag == 1 && flag1 == 0|| flag3 == 1)
{
printf("Bear\n");
}
else
{
printf("Hernia\n");
}
return 0;
}