java 数组给五个数字如何知道有几个是一样的数字
发布网友
发布时间:2022-04-28 15:59
我来回答
共5个回答
热心网友
时间:2022-06-19 14:33
int aa[] = {0,0,0,7,7};
/**
*高牌:五个数字都不一样 12345葫芦:三个一样,两个一样 11122四条:四个一样 11110一对:两个一样,其余三个不一样 11235两对:两个一样,其余三个有两个一样 11223
*/
public String test(int[] arr){
if(arr=!null&&arr.length==5){
Map map<int,int> = new HashMap<int,int>();//map<数字,出现的次数>
int num= 0;
int count = 1;
for(int i=0;i<arr.length;i++){
num = arr[i];
if(map.containskey(num)){
count = map.get(num);
count++;
map.put(num,count);
}else{
map.put(num,count);
}
}
String value="";
for (Map.Entry<int, int> entry : map.entrySet()) {
value += entry.getValue();
}
int len = value.length();
//根据规律打印
if(len==5){
System.out.println("高牌");
}else if(len==4){
System.out.println("一对");
}else if(len==3){
System.out.println("两对");
}else if(len==2){
if(value.contains('4')){
System.out.println("四条");
}else{
System.out.println("葫芦");
}
}
}else{
System.out.println("输入有误,请重新输入数组!");
}
}
直接写的,还没验证,大概就这样
热心网友
时间:2022-06-19 14:33
int count = 1;
int count1 = 1;
int z1 = 100;
int z2 = 100;
int aa[] = new int[5];
aa[0] = 7;
aa[1] = 7;
aa[2] = 7;
aa[3] = 7;
aa[4] = 3;
for (int i = 0; i < 5; i++) {
if(z1 == aa[i]||z2 == aa[i])continue;
for (int j = i+1; j < 5; j++) {
if (aa[i] == aa[j]) {
if(z1==100 || z1 == aa[i]){
z1 = aa[i];
count++;
}else {
z2 = aa[i];
count1++;
}
}
}
}
System.out.println(count + " ----" + count1);
if ((count == 2 && count1 == 3) || (count == 3 && count1 == 2)) {
System.out.println("葫芦");
} else if (count == 4 || count1 == 4) {
System.out.println("四条");
} else if (count == 2 && count1 == 2) {
System.out.println("两对");
} else if ((count == 2 && count1 != 2) || (count != 2 && count1 == 2)) {
System.out.println("一对");
} else if (count == 1 && count1 == 1) {
System.out.println("高牌");
}
热心网友
时间:2022-06-19 14:34
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5; j++) {
if (aa[i] == aa[j]) {
把中间那一句换掉试试,你这样的话,是重复比较了,所以不对。
for (int j = i; j < 5; j++) 改成这个试试
热心网友
时间:2022-06-19 14:34
先分组,再排序,再输出!
热心网友
时间:2022-06-19 14:35
不打牌,不知道什么叫"葫芦",什么叫“高牌”,什么叫“四条”,什么叫“两对”