Java代码基础算法练习-竞猜卡片值-2024.07.22

任务描述:
小米和小王玩竞猜游戏:准备7张卡片包含数字2、3、4、5、6、7、8,从中抽出2张(有 顺序之分,抽2、3跟抽3、2是两种情况),猜2张卡片的和,如果是奇数,则猜对。小米想知道自己猜 对的可能次数。请你设计程序帮助小米。


解决思路:

步骤 1: 分析卡片的特性
  • 奇数卡片:3, 5, 7(共3张)
  • 偶数卡片:2, 4, 6, 8(共4张)
步骤 2: 理解奇数和的条件

为了使两张卡片数字之和为奇数,必须满足以下条件之一:

  • 第一张卡片是奇数,第二张卡片是偶数。
  • 第一张卡片是偶数,第二张卡片是奇数。
步骤 3: 计算可能性
  • 从3张奇数卡片中抽取一张,有3种选择。
  • 从4张偶数卡片中抽取一张,有4种选择。
  • 所以,从奇数卡片中抽取一张然后从偶数卡片中抽取一张,共有 3×4=123×4=12 种可能性。
  • 同理,从偶数卡片中抽取一张然后从奇数卡片中抽取一张,也有 4×3=124×3=12 种可能性。
步骤 4: 总结结果

将上述两种情况相加,总共的可能性为 12+12=2412+12=24 种。


代码示例:

package a4_2024_07;

public class j240722_1 {
    public static void main(String[] args) {
        int totalCorrectGuesses = calculateCorrectGuesses();
        System.out.println("小米猜对的次数为:" + totalCorrectGuesses);
    }

    private static int calculateCorrectGuesses() {
        // 奇数卡片数量
        int oddCards = 3;
        // 偶数卡片数量
        int evenCards = 4;

        // 计算从奇数卡片到偶数卡片的组合数
        int oddToEvenCombinations = oddCards * evenCards;
        // 计算从偶数卡片到奇数卡片的组合数
        int evenToOddCombinations = evenCards * oddCards;

        // 返回总组合数
        return oddToEvenCombinations + evenToOddCombinations;
    }
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个简单的用 Java 实现的竞猜发奖代码: ```java // 奖励发放方法 public void awardPrizes(List<Winner> winners) { for (Winner winner : winners) { if (winner.getPrizeType() == PrizeType.VIRTUAL) { // 发放虚拟奖励 sendVirtualPrize(winner); } else if (winner.getPrizeType() == PrizeType.REAL) { // 发放实物奖励 sendRealPrize(winner); } } } // 发放虚拟奖励方法 public void sendVirtualPrize(Winner winner) { // 调用发送邮件/短信等的接口进行奖励发放 String recipient = winner.getEmail(); // 获奖者邮箱 String content = "恭喜您获得竞猜活动的奖励,奖励内容为:" + winner.getPrizeName(); sendEmail(recipient, content); // 发送邮件 } // 发放实物奖励方法 public void sendRealPrize(Winner winner) { // 调用快递公司等的接口进行奖励发放 String recipient = winner.getAddress(); // 获奖者地址 String content = "恭喜您获得竞猜活动的奖励,奖励内容为:" + winner.getPrizeName(); sendParcel(recipient, content); // 发送快递 } ``` 在上述代码中,`Winner` 类表示获奖者信息,包括姓名、奖励种类、数量、发放时间等;`PrizeType` 表示奖励种类,包括虚拟奖品和实物奖品;`sendVirtualPrize` 和 `sendRealPrize` 分别表示发放虚拟奖励和实物奖励的方法,需要根据具体情况进行实现;`awardPrizes` 方法则是对获奖者列表进行遍历,根据奖励种类调用不同的发放方法进行奖励的发放。 需要注意的是,在实际应用中,还需要考虑奖励发放的安全性和可靠性,如数据加密、接口访问权限控制、错误处理等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨空集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值