蓝桥杯 第七届 Javac组第四题 筛子游戏

本文介绍了一款基于三个六面骰子的游戏,探讨了当一个骰子的点数等于其余两个之和时的胜率计算。通过Java程序,采用三重循环遍历所有可能的情况,并使用辗转相除法求最大公约数简化胜率表达。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


骰子游戏

我们来玩一个游戏。
同时掷出3个普通骰子(6个面上的数字分别是1~6)。
如果其中一个骰子上的数字等于另外两个的和,你就赢了。

下面的程序计算出你能获胜的精确概率(以既约分数表示)


public class Main
{
    public static int gcd(int a, int b)
    {
        if(b==0) return a;
        return gcd(b,a%b);
    }
    
    public static void main(String[] args)
    {    
        int n = 0;
        for(int i=0; i<6; i++)
        for(int j=0; j<6; j++)
        for(int k=0; k<6; k++){
            if(________________________________) n++;   //填空位置
        }
        
        int m = gcd(n,6*6*6);
        System.out.println(n/m + "/" + 6*6*6/m);
    }
}


仔细阅读代码,填写划线部分缺少的内容。

注意:不要填写任何已有内容或说明性文字。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------其实这题的解法就如同该题的题目一样 游戏  看似简单粗暴但还是有小坑等着你=-=那么下面让我们看看这个坑在那里

public class si
{
    public static int gcd(int a, int b)
    {
        if(b==0) return a;
        return gcd(b,a%b);
    }
    
    public static void main(String[] args)
    {    
        int n = 0;
        for(int i=0; i<6; i++)
        for(int j=0; j<6; j++)
        for(int k=0; k<6; k++){

//在这里每个循环代表一个筛子 如果一个筛子数等于另外两个相加就ok了但是注意循环从0开始而筛子是从1开始
            if(i+1==j+1+k+1|j+1==i+1+k+1|k+1==i+1+j+1) n++;   //填空位置
        }
        
        int m = gcd(n,6*6*6);
        System.out.println(n/m + "/" + 6*6*6/m);
    }
}
 

 

### 关于第七届蓝桥杯 Java C的相关目、解思路及比赛资料 虽然当前引用并未直接提及第七届蓝桥杯 Java C的具体内容,但从其他相关内容可以推测一些可能的方向。 #### 一、关于蓝桥杯背景概述 蓝桥杯大赛作为一项面向全国高校学生的编程竞赛活动,其目标在于提升学生们的算法设计能力和程序开发水平。参赛者通常需要解决一系列涉及基础算法、数据结构以及实际应用的问[^1]。对于特定年份的比赛(如第七届),可以通过历年真解析文档获取更具体的指导信息。 #### 二、具体到Java C的信息分析 尽管未找到针对“第七届蓝桥杯 Java C”的确切描述,但可以从相似资源中推断出该类别的特点: - **目难度分布**:一般分为简单填空、复杂计算逻辑以及综合项目型大。例如,在某些届次里,“最优分”这样的问曾被设置为考察重点之一[^4]。 - **技术知识点覆盖范围**:主要围绕数操作、字符串处理、递归函数实现等方面展开测试;同时也会涉及到基本的数据结构运用像栈队列链表等概念理解与实践能力评估[^3]。 #### 三、推荐的学习方法论 为了更好地准备此类赛事并提高成绩表现,建议采取如下策略: 1. 复习巩固基础知识体系,特别是那些容易遗忘却频繁使用的语法细节; 2. 定期参与模拟训练营,通过反复练习增强临场应变技巧; 3. 学习优秀选手的经验分享文章或视频教程,借鉴他们的思维方式和答习惯。 以下是基于上述讨论整理出来的一段示例代码片段用于演示如何高效完成某一典型任务——寻找数中的最大值: ```java public class MaxValueFinder { public static int findMax(int[] array){ if (array == null || array.length ==0 ){ throw new IllegalArgumentException("Array cannot be empty"); } int max = array[0]; for(int i=1;i<array.length;i++){ if(array[i]>max){ max=array[i]; } } return max; } public static void main(String args[]){ int [] test={7,9,-5,8}; System.out.println(findMax(test)); // Output will be : 9 } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值