第四届蓝桥杯JavaC组国(决)赛真题

这篇博客介绍了第四届蓝桥杯JavaC组决赛的真题,包括概率计算、分数表示、地道战网络分析和组合数计算等题目,要求选手编写程序解决这些问题,涉及概率、图论和数论等知识。
摘要由CSDN通过智能技术生成

解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论

题目1、好好学习

汤姆跟爷爷来中国旅游。一天,他帮助中国的小朋友贴标语。他负责贴的标语是分别写在四块红纸上的四个大字:“好、好、学、习”。但是汤姆不认识汉字,他就想胡乱地贴成一行。
请你替小汤姆算一下,他这样乱贴,恰好贴对的概率是多少?
答案是一个分数,请表示为两个整数比值的形式。例如:1/3 或 2/15 等。
如果能够约分,请输出约分后的结果。
注意:不要书写多余的空格。
请严格按照格式,通过浏览器提交答案。
注意:只提交这个比值,不要写其它附加内容,比如:说明性的文字。

结果:1 / 12



题目2、埃及分数

古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。古埃及喜欢把一个分数分解为类似: 1/a + 1/b 的格式。
这里,a 和 b 必须是不同的两个整数,分子必须为 1
比如,2/15 一共有 4 种不同的分解法(姑且称为埃及分解法):
1/8 + 1/120
1/9 + 1/45
1/10 + 1/30
1/12 + 1/20
那么, 2/45 一共有多少个不同的埃及分解呢(满足加法交换律的算同种分解)? 请直接提交该整数(千万不要提交详细的分解式!)。
请严格按照要求,通过浏览器提交答案。
注意:只提交分解的种类数,不要写其它附加内容,比如:说明性的文字

7
public class Main {
        
    public static void main(String[] args) {
        int count = 0;
        for(int a = 1;a < 2000;a++) {
            for(int b = 1;b < 2000;b++) {
                if(45 * (a + b) == 2 * a * b) {
                    count++;
                    System.out.println("a = "+a+", b = "+b);
                }
            }
        }
        System.out.println("count = "+count / 2);
    }
}
题目3、金蝉素数
考古发现某古墓石碑上刻着一个数字:13597,后研究发现:
    这是一个素数!
    并且,去掉首尾数字仍是素数!
    并且,最中间的数字也是素数!
    这样特征的数字还有哪些呢?通过以下程序的帮助可以轻松解决。请仔细阅读代码,并填写划线部分缺失的代码。
public class A
{
    static boolean isPrime(int n)
    {
        if(n<=1) return false;
        for(int i=2; i*i<=n; i++){
            if(n%i==0) return false;
        }
        return true;
    }
    
    static void f(int[] x, int k)
    {
        if(_____________________________){  // 填空位置
            if(isPrime(x[0]*10000 + x[1]*1000 + x[2]*100 + x[3]*10 + x[4]) &&
                isPrime(x[1]*100 + x[2]*10 + x[3]) &&
                isPrime(x[2]))
                System.out.println(""+x[0]+x[1]+x[2]+x[3]+x[4]);
            return;
        }
        
        for(int i=k; i<x.length; i++){
            {int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }
            f(x,k+1);
            {int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }
        }
    }    
    static void test()
    {
        int[] x = {1,3,5,7,9};
        f(x,0);
    }
    public static void main(String[] args)
    {
        test();
    }
}
    请分析代码逻辑,并推测划线处的代码,通过网页提交。
    注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!


k == x.length
题目4、横向打印二叉树
二叉树可以用于排序。其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树。
    当遇到空子树时,则把该节点放入那个位置。 
    比如,10 8 5 7 12 4 的输入顺序,应
  • 19
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值