You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Java硬币翻转程序添加数字频次统计与众数识别功能?

优化后的Java硬币翻转程序

以下是满足需求的优化代码,实现了1-10每个数字的次数统计,并找出出现次数最多的数字:

import java.util.*;

public class GreatCoinFlipping {
    
    public static void main(String[] args) {
        System.out.println("How many times do you want to flip the coin? : ");

        Scanner sc = new Scanner(System.in);
        int amount = sc.nextInt();

        int[] arrNum = new int[amount];
        // 计数数组,索引1-10对应数字1-10的出现次数
        int[] countArr = new int[11];
        int even = 0, odd = 0;

        for (int i = 0; i < amount ; i++) {
            arrNum[i] = (int)(Math.random() * 10 + 1);
            System.out.println(arrNum[i]);
            // 统计当前数字的出现次数
            countArr[arrNum[i]]++;
            // 保留原有的正反面统计逻辑
            if (arrNum[i] % 2 == 0) even++;
            else                    odd++;
        }

        // 输出正反面统计结果
        System.out.println("Head: " + even + ", Tail: " + odd);

        // 输出1-10每个数字的出现次数
        System.out.println("\n各数字出现次数:");
        for (int num = 1; num <= 10; num++) {
            System.out.printf("数字%d:%d次%n", num, countArr[num]);
        }

        // 找出出现次数最多的数字(处理多个数字次数相同的情况)
        int maxCount = 0;
        List<Integer> topNums = new ArrayList<>();
        for (int num = 1; num <= 10; num++) {
            if (countArr[num] > maxCount) {
                maxCount = countArr[num];
                topNums.clear();
                topNums.add(num);
            } else if (countArr[num] == maxCount) {
                topNums.add(num);
            }
        }

        // 输出高频数字结果
        System.out.println("\n出现次数最多的数字:");
        if (topNums.size() == 1) {
            System.out.printf("数字%d,共出现%d次%n", topNums.get(0), maxCount);
        } else {
            System.out.print("数字");
            for (int i = 0; i < topNums.size(); i++) {
                if (i > 0) System.out.print("、");
                System.out.print(topNums.get(i));
            }
            System.out.printf(",均出现%d次%n", maxCount);
        }

        sc.close();
    }
    
}

关键优化点

  • 计数数组统计:创建长度为11的countArr,直接用数字本身作为索引,通过countArr[随机数]++完成高效计数,避免复杂的条件判断
  • 多数字高频处理:用列表存储所有出现次数最多的数字,解决多个数字出现次数相同的场景
  • 保留原有功能:保留了原程序的正反面统计逻辑,同时新增了数字统计和高频数字查找功能

内容的提问来源于stack exchange,提问作者Soohyun Kang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:05:28