蓝桥杯2014年JavaB组省赛 (解析+代码)

第一题:武功秘籍

小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。
他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。

小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?

这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。
答案:7

第二题:切面条

一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,
中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。

找规律
切n刀时,可以得到2的n次方加1跟面条
答案:1025

第三题: 猜字母

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

答案:q

public static void main(String[] args){
   
        char[] a=new char[2014];
        int index=0;
        for(int i=1;i<=106;i++){
   
            for(int j=0;j<19;j++){
   
                a[index++]=(char)('a'+j);
            }
        }
        int len=2014;
        while(len!=1){
   
            int k=0;
            for(int i=1;i<len;i+=2){
   
                a[k++]=a[i];
            }
            len=k;
        }
        System.out.println(a[0]);
    }

第四题: 大衍数列

中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 …

其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前 100 项。

for(int i=1; i<100; i++) {
if(________________) //填空
System.out.println(ii/2);
else
System.out.println((i
i-1)/2);
}

请填写划线部分缺失的代码。通过浏览器提交答案。

注意:不要填写题面已有的内容,也不要填写任何说明、解释文字

答案:i%2==0

第五题:圆周率

数学发展历史上,圆周率的计算曾有许多有趣甚至是传奇的故事。
其中许多方法都涉及无穷级数。

如图所示,就是一种用连分数的形式表示的圆周率求法。
在这里插入图片描述

下面的程序实现了该求解方法。实际上数列的收敛对x的初始值 并不敏感。

结果打印出圆周率近似值(保留小数点后4位,并不一定与圆周率真值吻合)。

double x = 111;
for(int n = 10000; n>=0; n–){
int i = 2 * n + 1;
x = 2 + (i*i / x);
}

System.out.println(String.format("%.4f", ______________));
答案:4/(x-1)

第六题:奇怪的分式

上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5

小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45
在这里插入图片描述

老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!

对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?

请写出所有不同算式的个数(包括题中举例的)。

显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。

但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!

注意:答案是个整数(考虑对称性,肯定是偶数)。请通过浏览器提交。不要书写多余的内容。

答案:14

 static int ans;
    public static void main(String[] args){
   
        for(int a=1;a<=9;a++){
   
            for(int b=1;b<=9;b++){
   
                if(b==a)continue;
                for(int c=1;c<=9;c++){
   
                    for(int d=1;d<=9;d++){
   
                        if(d==c)continue;
                        int g1=gcd(a*c,b*d);
                        int g2=gcd(a*10+c,b*10+d);
                        if((a*c)/g1==(a*10+c)/g2 && (b*d)/g1==(b*10+d)/g2){
   
                            ans++;
                        }
                    }
                }
            }
        }
        System.out.println(ans);
    }
    //求a,b的最大公约数
    static int gcd(int a,int b){
   
        if(b==0)return a;
        return gcd(b,a%b);
    }

第七题:扑克序列

A A 2 2 3 3 4 4&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值