Java彩票奖励游戏数组正确数字对统计逻辑修复问题
问题根因
你当前使用的双层嵌套循环逻辑是遍历数组中所有两两元素组合,n个相同数字会统计出C(n,2)对,和你需要的「按出现次数取整计算独立对数」的规则不符。
修改方案
你无需调整数组生成逻辑,仅需把原来的双层for循环统计代码完全替换为以下逻辑即可:先统计每个奖金档位的出现次数,再用次数整除2得到独立对数,最后核算总奖金。
替换代码
// 统计每个奖金值的出现次数 int[] count = new int[1001]; for (int num : bonusGame) { count[num]++; } // 按独立对数核算奖金 int[] bonusLevels = {10, 20, 50, 200, 1000}; for (int level : bonusLevels) { int pairNum = count[level] / 2; if (pairNum > 0) { int totalWin = level * pairNum; System.out.println(" You won " + totalWin + " euro "); bonusGameSum += totalWin; } }
效果验证
- 某档位出现3次:3//2=1对,仅统计1次对应奖金
- 某档位出现4次:4//2=2对,统计2次对应奖金
- 某档位出现5次:5//2=2对,统计2次对应奖金
完全符合你要求的独立数字对统计规则。
内容的提问来源于stack exchange,提问作者Ruslan Pylypiuk
相关产品推荐
相关产品推荐

