蓝桥杯java高职C组.docx

上传人:b****6 文档编号:6330834 上传时间:2023-01-05 格式:DOCX 页数:16 大小:23.33KB
下载 相关 举报
蓝桥杯java高职C组.docx_第1页
第1页 / 共16页
蓝桥杯java高职C组.docx_第2页
第2页 / 共16页
蓝桥杯java高职C组.docx_第3页
第3页 / 共16页
蓝桥杯java高职C组.docx_第4页
第4页 / 共16页
蓝桥杯java高职C组.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

蓝桥杯java高职C组.docx

《蓝桥杯java高职C组.docx》由会员分享,可在线阅读,更多相关《蓝桥杯java高职C组.docx(16页珍藏版)》请在冰豆网上搜索。

蓝桥杯java高职C组.docx

蓝桥杯java高职C组

2016年蓝桥杯JavaC组考试题(考试日期2016320日)

第一题:

有奖猜谜

小明很喜欢猜谜语。

最近,他被邀请参加了X星球的猜谜活动。

每位选手开始的时候都被发给777个电子币。

规则是:

猜对了,手里的电子币数目翻倍,猜错了,扣除555个电子币,扣完为止。

小明一共猜了15条谜语。

战果为:

vxvxvxvxvxvxvvx其中v表示猜对了,x表示猜错了。

请你计算一下,小明最后手里的电子币数目是多少

请填写表示最后电子币数目的数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

publicstaticvoidmain(String[]args){

intn=777;

for(inti=1;i<=12;i++)

{

if(i%2!

=0)

{

n=n*2;

}

else

n=n-555;

}

n=n*2;

n=n*2;

n=n-555;

System.out.println(n);|

}

答案:

58497

第二题:

煤球数目

有一堆煤球,堆成三角棱锥形。

具体:

第一层放1个,

第二层3个(排列成三角形),

第三层6个(排列成三角形),

第四层10个(排列成三角形),

如果一共有100层,共有多少个煤球?

请填表示煤球总数目的数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

publicstaticvoidmain(String[]args){

intsum[]=newint[101];

intsum1=0;

ints=0;

for(inti=1;i<=100;i++)

{

sum1=sum1+i;

sum[i]=sum1;

s=s+sum[i];

}

System.out.println(s);

}

答案:

171700

第二题:

平方怪圈

如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。

对新产生的正整数再做同样的处理。

如此一来,你会发现,不管开始取的是什么数字,

最终如果不是落入1,就是落入同一个循环圈。

请写出这个循环圈中最大的那个数字。

请填写该最大数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intn=sc.nextInt();

intmax=0;

for(inti=1;i<=50;i++)

{

Stringst=""+n;

intlen=st.length();

int[]a=newint[len];

for(intj=O;j

{

(st.substring(j,j+1));

a[j]=lnteger.parseInt

a[j]=a[j]*a[j];

}

intsum=0;

for(intj=0;j

{

sum=sum+a[j];

}n=sum;

max=Math.max(max,n);

答案:

145

第四题:

骰子游戏

我们来玩一个游戏

System.

同时掷出3个普通骰子(6个面上的数字分别是1~6)

如果其中一个骰子上的数字等于另外两个的和,你就赢了。

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

publicclassMain

{

publicstaticintgcd(inta,intb)

{

if(b==0)returna;returngcd(b,a%b);

}

publicstaticvoidmain(String[]args)

{

intn=0;

for(inti=0;i<6;i++)

for(intj=0;j<6;j++)

for(intk=0;k<6;k++){

//填空位置

if(i+j+2==k+1||i+k+2==j+1||k+j+2==i+1)n++;}

intm=gcd(n,6*6*6);

System.out.println(n/m+"/"+6*6*6/m);仔细阅读代码,填写划线部分缺少的内容。

注意:

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

第五题:

分小组

9名运动员参加比赛,需要分3组进行预赛

有哪些分组的方案呢?

我们标记运动员为A,B,C,...I

下面的程序列出了所有的分组方法。

该程序的正常输出为:

ABCDEFGHI

ABCDEGFHI

ABCDEHFGI

ABCDEIFGH

ABCDFGEHI

ABCDFHEGIABCDFIEGHABCDGHEFIABCDGIEFHABCDHIEFGABCEFGDHIABCEFHDGIABCEFIDGHABCEGHDFIABCEGIDFHABCEHIDFGABCFGHDEIABCFGIDEHABCFHIDEGABCGHIDEFABDCEFGHIABDCEGFHIABDCEHFGIABDCEIFGHABDCFGEHIABDCFHEGIABDCFIEGHABDCGHEFIABDCGIEFHABDCHIEFG

ABDEFGCHI

(以下省略,总共560行)。

publicclassA

{

publicstaticStringremain(int[]a)

{

Strings="";

for(inti=0;i

if(a[i]==0)s+=(char)(i+'A');

}

returns;

}

publicstaticvoidf(Strings,int[]a)

{

for(inti=0;i

if(a[i]==1)continue;a[i]=1;

for(intj=i+1;j

for(intk=j+1;k

if(a[k]==1)continue;

a[k]=1;

(char)(j+'A')

System.out.println(s+""+(char)(i+'A')

(char)(k+'A')+""+remain(a));//填空位置

a[k]=0;

}

a[j]=0;

}

a[i]=0;

}

}

publicstaticvoidmain(String[]args){

int[]a=newint[9];

a[0]=1;

for(intb=1;b

a[b]=1;

for(intc=b+1;c

a[c]=1;

Strings="A"+(char)(b+'A')+(char)(c+'A');f(s,a);

a[c]=0;

}

a[b]=0;

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

注意:

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

第六题:

凑算式

BDEF

A+---+=10

CGHI

如果显示有问题,可以参见【图1.jpg】)

B

DEF

+

4-

二10

C

GHI

这个算式中A~l代表1~9的数字,不同的字母代表不同的数字

比如:

6+8/3+952714就是一种解法,

5+31+972486是另一种解法。

这个算式一共有多少种解法?

注意:

你提交应该是个整数,不要填写任何多余的内容或说明性文字。

递归:

staticint

count=0;

static

boolean[]date;

public

staticvoidmain(String[]args){

int

[]a=newint[10];

date=newboolean[10];

dp(a,1);

}

staticvoiddp(int[]a,ints)

{

if(s==10)

{

if(a[3]==0||a[7]==0||a[8]==0||a[9]==0)

{

return;

}

doubleq=(double)a[2]/a[3];

doublew=(a[4]*100+a[5]*10+a[6])*1.00/(a[7]*100+a[8]*10+a[9]);

doublee=(double)a[1];

if(q+w+e==10.00)

count++;

return;

}

for(inti=1;i<=9;i++)

{

if(date[i]==false)

{

date[i]=true;

a[s]=i;

dp(a,s+1);

date[i]=false

答案:

29

第七题:

搭积木

小明最近喜欢搭数字积木,

一共有10块积木,每个积木上有一个数字,0~9。

搭积木规则:

每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小最后搭成4层的金字塔形,必须用完所有的积木。

下面是两种合格的搭法:

0

12

345

31

752

9864

请你计算这样的搭法一共有多少种?

请填表示总数目的数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

递归:

staticintcount=0;

staticboolean[]date;

publicstaticvoidmain(String[]args){

int[]a=newint[10];

date=newboolean[10];

dp(a,0);

System.out.println(count);

}

staticvoiddp(int[]a,ints)

if(s==10)

if(a[0]>a[1]||a[0]>a[2])

return

elseif(a[1]>a[3]||a[1]>a[4])

return

elseif(a[2]>a[4]||a[2]>a[5])

return

elseif(a[3]>a[6]||a[3]>a[7])

return

elseif(a[4]>a[7]||a[4]>a[8])

return

elseif(a[5]>a[8]||a[5]>a[9])

return

else

count++;

return;

}

for(inti=0;i<=9;i++)

{

if(date[i]==false)

date[i]=true

dp(a,s+1);

date[i]=false;

}

}

}

答案:

768

第八题:

冰雹数

任意给定一个正整数N,

如果是偶数,执行:

N/2

如果是奇数,执行:

N*3+1

生成的新的数字再执行同样的动作,循环往复。

通过观察发现,这个数字会一会儿上升到很高,

一会儿又降落下来。

就这样起起落落的,但最终必会落到“T

这有点像小冰雹粒子在冰雹云中翻滚增长的样子

比如N=99,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1

可以看到,N=9的时候,这个“小冰雹”最高冲到了52这个高度。

输入格式:

一个正整数N(N<1000000)

输出格式:

一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少

例如,输入:

10

程序应该输出:

52

再例如,输入:

100

程序应该输出:

9232

资源约定:

峰值内存消耗(含虚拟机)<256M

CPU消耗<1000ms

的多余内容

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

不要使用package语句。

不要使用jdk1.7及以上版本的特性。

注意:

主类的名字必须是:

Main,否则按无效代码处理。

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intN=sc.nextInt();

intmax1=0;

for(inti=N;i>1;i--)

{

intti=i;

while(ti>1)

{

if(ti%2==0)

{

ti=ti/2;

}

elseif(ti%2!

=0)

{

ti=ti*3+1;

}max1=Math.max(ti,max1);

}

System.out.println(max1);

}

第九题:

四平方和

四平方和定理,又称为拉格朗日定理:

每个正整数都可以表示为至多4个正整数的平方和。

如果把0包括进去,就正好可以表示为4个数的平方和比如:

5=0A2+0A2+1A2+22

7=1A2+1A2+1A2+22

(八符号表示乘方的意思)

对于一个给定的正整数,可能存在多种平方和的表示法。

要求你对4个数排序:

0<=a<=b<=c<=d

并对所有的可能表示法按a,b,c,d为联合主键升序排列,最后输出第一个表示法

程序输入为一个正整数N(N<5000000)

要求输出4个非负整数,按从小到大排序,中间用空格分开例如,输入:

5

则程序应该输出:

0012再例如,输入:

12

则程序应该输出:

0222再例如,输入:

773535

则程序应该输出:

11267838资源约定:

峰值内存消耗(含虚拟机)<256M

的多余内容

CPU消耗<3000ms

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

不要使用package语句。

不要使用jdk1.7及以上版本的特性。

注意:

主类的名字必须是:

Main,否则按无效代码处理。

intmain()

{

inta,b,c,n,flag=0;

doublemaxN,d;

scanf("%d",&n);

maxN=sqrt(n);

for(a=0;a<=maxN;a++){

for(b=a;b<=maxN;b++){

for(c=b;c<=maxN;c++){

d=sqrt(n-a*a-b*b-c*c);

if(d==(int)d){

printf("%d%d%d%d\n",a,b,c,(int)d);

flag=1;

break;

}

}

if(flag)

break;

}

if(flag)

break;

return0;

}

第十题

密码脱落

X星球的考古学家发现了一批古代留下来的密码。

这些密码是由A、B、C、D四种植物的种子串成的序列。

仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。

由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

你的任务是:

给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。

输入一行,表示现在看到的密码串(长度不大于1000)

要求输出一个正整数,表示至少脱落了多少个种子。

例如,输入:

ABCBA

则程序应该输出:

再例如,输入:

ABECDCBABC

则程序应该输出:

3

资源约定:

峰值内存消耗(含虚拟机)<256M

CPU消耗<3000ms

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入…”的多余内容

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

不要使用package语句。

不要使用jdk1.7及以上版本的特性。

注意:

主类的名字必须是:

Main,否则按无效代码处理。

publicstaticvoidmain(String[]args){

Scannersc土newScanner(System.in);

Stringst=sc.next();

char[]s=st.toCharArray();

intcount=0;

intmax=0;

inti=0,n=0,j=st.length()-1;

intti,tj;

while(i<=j)

{

if(s[i]==s[j])

{

i++;

j--;

}

else

{

ti=i;

tj=j;

寻找相等的情况

寻找相等的情况

//以右边为标记左边为游标

while(s[ti]!

=s[j]&&ti

{

ti++;

}

//以左边为标记右边为游标

while(s[i]!

=s[tj]&&i<=tj)

{

tj--;

//比较这个游标移动的距离,取小的距离

置为新的起点

置为新的终点

{

n+=ti-i;

i=ti;//将i

}

else

{

n+=j-tj;

j=tj;//将j

}

}

}

System.out.println(n);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1