蓝桥杯java练习题分类汇总

合集下载

java蓝桥杯b组题目

java蓝桥杯b组题目

java蓝桥杯b组题目

摘要:

1.蓝桥杯B 组题目概述

2.蓝桥杯B 组题目的类型

3.如何准备蓝桥杯B 组题目

4.总结

正文:

【蓝桥杯B 组题目概述】

蓝桥杯是中国的一项全国性计算机科学比赛,每年举办一次。该比赛旨在发掘和培养高中和大学生的计算机科学和信息技术方面的才能。蓝桥杯B 组是针对高中生举办的比赛,参赛选手需要通过地区赛、省赛等多个层次的选拔,最终进入全国总决赛。蓝桥杯B 组题目是比赛的重要组成部分,题目内容涵盖了计算机科学的各个领域,如算法与数据结构、计算机网络、数据库、操作系统等。

【蓝桥杯B 组题目的类型】

蓝桥杯B 组题目分为两种类型:个人赛题目和团队赛题目。个人赛题目是针对单个选手进行的比赛,要求选手在规定时间内独立完成一个计算机程序,并满足题目要求。团队赛题目则是由3 名选手组成的团队共同完成一个计算机程序,并满足题目要求。两种类型的题目都注重考察选手的编程能力和解决实际问题的能力。

【如何准备蓝桥杯B 组题目】

准备蓝桥杯B 组题目需要掌握一定的计算机科学基础知识,包括算法与数据结构、计算机网络、数据库、操作系统等方面的知识。此外,还需要进行大量的编程练习,提高编程能力和解决实际问题的能力。具体的准备方法包括:

1.学习计算机科学基础知识,了解计算机编程的基本思想和方法。

2.练习编写算法和数据结构,掌握常用的算法和数据结构,如排序算法、查找算法、树、图等。

3.熟悉计算机编程语言,如C++、Java 等,熟练掌握编程语言的基本语法和常用函数库。

4.进行模拟练习,模拟蓝桥杯比赛的形式和要求,提高自己的应变能力和抗压能力。

蓝桥杯练习系统算法训练习题加答案解析java版本

蓝桥杯练习系统算法训练习题加答案解析java版本

算法训练

编号:ALGO-1

题目:区间k大数查询列

关键字:排序查找

类型:普通试题

问题描述

给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

输入格式

第一行包含一个数n,表示序列长度。

第二行包含n个正整数,表示给定的序列。

第三个包含一个正整数m,表示询问个数。

接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。

输出格式

总共输出m行,每行一个数,表示询问的答案。

样例输入

5

1 2 3 4 5

2

1 5 2

2 3 2

样例输出

4

2

数据规模与约定

对于30%的数据,n,m<=100;

对于100%的数据,n,m<=1000;

保证k<=(r-l+1),序列中的数<=1000000。

本题的Java参考代码如下:

import class Main

{

private static BufferedInputStream in = new BufferedInputStream;

}

public static void main(String[] args) throws IOException

{

int[] nums = new int[readInt()];

for(int i=0; i<; i++)

{

nums[i] = readInt();

}

for(int i=readInt(); i>0; i--)

<

{

int a = readInt();

int b = readInt();

int c = readInt();

蓝桥杯经典例题(Java语言实现)

蓝桥杯经典例题(Java语言实现)

1.Fibonacci数列

·

import java.util.Scanner;

public class Main {

public static void main(String[] args) { // TODO Auto-generated method stub

Scanner sca = new Scanner(System.in);

int i = sca.nextInt();

int[] s = new int[i+1];

s[1] = s[2]= 1;

for (int j = 3; j <= i; j++) {

s[j] = (s[j - 1] + s[j - 2]) % 10007;

}

System.out.println(s[i]);

}

}

2.圆的面积

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sca = new Scanner(System.in);

int r = sca.nextInt();

double PI=Math.PI;

double S=PI*r*r;

String result=String.format("%.7f", S);//四舍五入

System.out.println(result);

result=String.format("%.8f", S).substring(0,

(S+"").indexOf(".")+8);//不进行四舍五入,现取9位小数,再截取8位System.out.println(result);

(完整word版)蓝桥杯练习系统题目汇总,推荐文档

(完整word版)蓝桥杯练习系统题目汇总,推荐文档

蓝桥杯练习系统题目汇总:

入门训练

1. Fibonacci数列

问题描述

Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。

当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式

输入包含一个整数n。

输出格式

输出一行,包含一个整数,表示F n除以10007的余数。

说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入

10

样例输出

55

样例输入

22

样例输出

7704

数据规模与约定

1 <= n <= 1,000,000。

参考代码:c++

1.#include

2.#include

3.#define MOD 10007

4.#define MAXN 1000001

5.int n, i, F[MAXN];

6.int main()

7.{

8.scanf("%d", &n);

9.F[1] = 1;

10.F[2] = 1;

11.for(i = 3; i <= n; ++i)

12.F[i] = (F[i-1] + F[i-2]) % MOD;

13.printf("%d\n", F[n]);

14.return0;

15.}

java:

1.import java.util.Scanner;

2.public class Main{

3.public static void main(String[] args) {

第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题

解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论

题⽬1、哪天返回

题⽬描述

⼩明被不明势⼒劫持。后被扔到x星站再⽆问津。⼩明得知每天都有飞船飞往地球,但需要108元的船票,⽽他却⾝⽆分⽂。他决定在x星战打⼯。好⼼的⽼板答应包⾷宿,第1天给他1元钱。

并且,以后的每⼀天都⽐前⼀天多2元钱,直到他有⾜够的钱买票。

请计算⼀下,⼩明在第⼏天就能凑够108元,返回地球。

要求提交的是⼀个整数,表⽰第⼏天。请不要提交任何多余的内容。

package Lqb;

public class Text27 {

public static void main(String[] args) {

int money=1;

int dayMoney=1;

int day=1;

System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);

while(money<108){

dayMoney+=2;

money+=dayMoney;

day++;

System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);

}

}

}

题⽬2、猴⼦分⾹蕉

题⽬描述

5只猴⼦是好朋友,在海边的椰⼦树上睡着了。这期间,有商船把⼀⼤堆⾹蕉忘记在沙滩上离去。

第1只猴⼦醒来,把⾹蕉均分成5堆,还剩下1个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

第2只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下2个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

蓝桥杯练习系统算法训练习题加答案java版本

蓝桥杯练习系统算法训练习题加答案java版本

算法训练

编号:ALGO-1

题目:区间k大数查询列

关键字:排序查找

类型:普通试题

问题描述

给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

输入格式

第一行包含一个数n,表示序列长度。

第二行包含n个正整数,表示给定的序列。

第三个包含一个正整数m,表示询问个数。

接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。

输出格式

总共输出m行,每行一个数,表示询问的答案。

样例输入

5

1 2 3 4 5

2

1 5 2

2 3 2

样例输出

4

2

数据规模与约定

对于30%的数据,n,m<=100;

对于100%的数据,n,m<=1000;

保证k<=(r-l+1),序列中的数<=1000000。

本题的Java参考代码如下:

import java.io.BufferedInputStream;

import java.io.IOException;

import java.util.Arrays;

public class Main

{

private static BufferedInputStream in = new BufferedInputStream(System.in);

public static void main(String[] args) throws IOException

{

int[] nums = new int[readInt()];

for(int i=0; i<nums.length; i++)

蓝桥杯本科java试题及答案

蓝桥杯本科java试题及答案

蓝桥杯本科java试题及答案蓝桥杯本科Java试题及答案

一、选择题(每题2分,共10分)

1. 在Java中,以下哪个关键字用于定义类?

A. class

B. function

C. interface

D. struct

答案:A

2. 下列哪个是Java中的合法标识符?

A. 2class

B. class@2

C. _class

D. class-class

答案:C

3. Java中的哪个类提供了一种计算时间和日期的方法?

A. Date

B. Time

C. Calendar

D. Clock

答案:C

4. 在Java中,以下哪个是正确的条件表达式?

A. if (x = 5)

B. if (x == 5)

C. if (x : 5)

D. if (x / 5)

答案:B

5. Java中的异常处理机制是通过哪两个关键字实现的?

A. try-catch

B. if-else

C. switch-case

D. for-loop

答案:A

二、填空题(每题3分,共15分)

1. Java中的所有类都是继承自ng.________类。

答案:Object

2. 在Java中,________关键字用于实现方法的多态。

答案:override

3. Java中的集合框架主要分为两大类:________和________。

答案:List、Set

4. Java中的线程同步机制是通过________关键字实现的。

答案:synchronized

5. Java中,要实现网络通信,可以使用________类。

答案:Socket

三、简答题(共20分)

1. 请简述Java中接口和抽象类的区别。(10分)

第三届蓝桥杯(高职java预赛题及参考答案)

第三届蓝桥杯(高职java预赛题及参考答案)

1、造成高房价的原因有许多,比如土地出让价格。既然地价高,土地的面积必须仔细计算。遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。

一般需要把它划分为多个三角形来计算。

已知三边求三角形的面积需要用海伦定理,参见【2.jpg】

各条边长数据如下:

AB = 52.1

BC = 57.2

CD = 43.5

DE = 51.9

EA = 33.4

EB = 68.2

EC = 71.9

根据这些数据求五边形地块的面积。四舍五入到小数后两位。只写结果,不要源代码!

1.jpg

2.jpg

public class Onea {

public static void main(String args[])

{

double s_ABE = (52.1 + 68.2 + 33.4) / 2;

double s_BEC = (68.2 + 57.2 + 71.9) / 2;

double s_EDC = (71.9 + 51.9 + 43.5) / 2;

// sqrt()是Math中的静态方法可以用类名直接调用

double A_ABE = Math.sqrt(s_ABE * (s_ABE - 52.1) * (s_ABE - 33.4) * (s_ABE - 68.2));

double A_BEC = Math.sqrt(s_BEC * (s_BEC - 68.2) * (s_BEC - 57.2) * (s_BEC - 71.9));

double A_EDC = Math.sqrt(s_EDC * (s_EDC - 71.9) * (s_EDC - 43.5) * (s_EDC - 51.9));

JavaC组蓝桥杯107道历年真题

JavaC组蓝桥杯107道历年真题

JavaC组蓝桥杯107道历年真题

2013年JavaC组————蓝桥杯第四届

猜年龄暴⼒法 or Set集合

【问题描述】美国数学家维纳(N.Wiener)智⼒早熟,11岁就上了⼤学。他曾在1935~1936年应邀来中国清华⼤学讲学。⼀次,他参加某个重要会议,年轻的脸孔引⼈注⽬。于是有⼈询问他的年龄,他回答说: “我年龄的⽴⽅是个4位数。我年龄的4次⽅是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算⼀下,他当时到底有多年轻。

通过浏览器,直接提交他那时的年龄数字。

注意:不要提交解答过程,或其它的说明⽂字。

【答案】18

【暴⼒法代码】

public static void main(String[] args) {

for (int age = 11; age < 20; age++) {

System.out.println("年龄"+age+":"+Math.pow(age, 3) +" "+ Math.pow(age, 4));

}

}

【输出】

年龄11:1331.0 14641.0

年龄12:1728.0 20736.0

年龄13:2197.0 28561.0

年龄14:2744.0 38416.0

年龄15:3375.0 50625.0

年龄16:4096.0 65536.0

年龄17:4913.0 83521.0

年龄18:5832.0 104976.0

年龄19:6859.0 130321.0

【Set集合代码】

public static void main(String[] args) {

蓝桥杯备赛算法(java)

蓝桥杯备赛算法(java)

蓝桥杯备赛算法(java)导学

蓝桥杯课程安排:

参考书籍:

学习⽅法:

位运算

1-1000这1000个数放在含有1001个元素的数组中,只有唯⼀的⼀个元素值重复,其它均只出现⼀次。

每个数组元素只能访问⼀次,设计⼀个算法,将它找出来;不⽤辅助存储空间,能否设计⼀个算法实现? 1package算法基础;

2import算法基础.数组随机排序;

3import java.util.Random;

4

5/**

6 * @Auther:zhushen

7 * @Date:2021/1/13

8 * @Description:位运算

9 * @version:1.0

10*/

11public class唯⼀成对的数 {

12/*

13 1-1000这1000个数放在含有1001个元素的数组中,只有唯⼀的⼀个元素值重复,其它均只出现⼀次。14每个数组元素只能访问⼀次,设计⼀个算法,将它找出来;不⽤辅助存储空间,能否设计⼀个算法实现?15*/

16public static void main(String[]args){

17 System.out.println("============⽅法⼀============");

18//不使⽤辅助存储空间

19//思路:将数组元素与正常⽆重复数组元素进⾏异或(数组元素为0—10中的整数)

//20//代码实现参考:两个数交换值

21//num1 = num1^num2;

22//num2 = num1^num2;

23//num1 = num1^num2;

24int N = 11;

25int[]arr = new int[N];

蓝桥杯java试题及答案

蓝桥杯java试题及答案

蓝桥杯java试题及答案

蓝桥杯是中国著名的计算机科学与技术竞赛,旨在选拔和培养优秀的计算机人才,尤其是高中和大学的学生。Java是蓝桥杯竞赛中常见的编程语言之一。本文将介绍一些常见的蓝桥杯Java试题,并提供相应的答案。

一、编程题

1. 题目描述:

请编写一个Java程序,实现将一个整数数组中的奇数和偶数分别放在两个新数组中,并按照从小到大的顺序排列。

解题思路:

可以使用两个ArrayList来保存奇数和偶数,先遍历原数组,将奇数放入奇数数组,将偶数放入偶数数组,然后分别对两个数组进行升序排序。

代码实现:

```java

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

public class SplitArray {

public static void main(String[] args) {

int[] arr = {1, 2, 3, 4, 5, 6};

ArrayList<Integer> oddList = new ArrayList<>(); ArrayList<Integer> evenList = new ArrayList<>(); for (int num : arr) {

if (num % 2 == 0) {

evenList.add(num);

} else {

oddList.add(num);

}

}

Collections.sort(oddList);

蓝桥杯javab组题型

蓝桥杯javab组题型

蓝桥杯javab组题型

蓝桥杯是全国性的IT比赛,随着近年来计算机教育的普及,参赛人数

也在逐年增加。而JavaB组则是其中居高不下的热门组别之一。在JavaB组内,题目类型也呈现出明显的分类,下面就让我们一起来了解

一下。

一、基础题型

JavaB组的基础题型即为模拟题和算法题。模拟题通常需要模拟某种实

际场景中的运行过程,如模拟公交车的站点和乘客,求出某个时间段

内的乘客数量和各站点的空闲情况。而算法题则需要考验参赛者的逻

辑思维和算法设计能力,如在给定数据范围内找到符合要求的最优解。

二、实用题型

除了基础题型外,JavaB组还有一些与实际工程应用相关的题型,如文

件读写、多线程、GUI(图形用户界面)等。这些题型不仅考察了参赛者的Java编程技巧,也考察了其实际应用能力和实现效果。

三、综合题型

在比赛中,还会有一些综合性的题型出现,通常需要参赛者结合多种

技术和知识点进行综合分析和解决问题。作为有意愿参加蓝桥杯JavaB 组比赛的Java程序员,需要对各种知识点中的细节和特殊情况进行掌握,以便在比赛中表现得更加出色。

四、优秀程序设计思路

JavaB组是一个既挑战性又实用性很高的比赛,很多Java程序员都梦想着在其中脱颖而出,展示自己的程序设计思路和编程技巧。想要取得好成绩,参赛者需要具备扎实的Java编程基础知识、良好的逻辑思维能力、熟练的算法和数据结构应用技巧,同时还需要具备丰富的实际工作经验和较强的问题解决能力。

五、结语

总的来说,JavaB组题型是比较全面的,有基础题型、实用题型和综合题型等,参赛者需要有自己的独特思路和方法,才能在比赛中取得好成绩。另外,想要在比赛中获胜,除了要掌握以上知识外,也要努力提高自己的代码能力和实际应用能力,才能应对多样化的比赛题目。

蓝桥杯Java试题汇总-共48页

蓝桥杯Java试题汇总-共48页

1. 历届试题核桃的数量

问题描述

小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

1. 各组的核桃数量必须相同

2. 各组内必须能平分核桃(当然是不能打碎的)

3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式

输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)

输出格式

输出一个正整数,表示每袋核桃的数量。

样例输入1

2 4 5

样例输出1

20

样例输入2

3 1 1 样例输出2 3

JAVA

源代码

1import java.util.Scanner;

2public class Main {

3

4public static void main(String[]

args){

5 Scanner sc=new Scanner(System.in);

6int a=sc.nextInt();

7int b=sc.nextInt();

8int c=sc.nextInt();

9int i;

10for(i=1;;i++){

11if(i%a==0&&i%b==0&&i%c==0)

12

13break;

14 }

15 System.out.println(i);

16

}}

2.基础练习Sine之舞

时间限制:1.0s 内存限制:512.0MB

问题描述

最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学

好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。

蓝桥杯java试题及答案

蓝桥杯java试题及答案

蓝桥杯java试题及答案

【篇一:蓝桥杯java历年真题(共129道题目及答案)】这样的,如果给定n个不同字符,将这n个字符全排列,最终的结果将会是n!种。如:给定a、b、c三个不同的字符,则结果为:abc^ acb、bac、bca、cab> cba—共3!=3*2=6 种情况。

package questiord_9;

〃有问题。-

广import java.util.scan ner;

import java.util.vector;

public class questiord {

public static long count=0;

private void fullpermutation(vectorcharactersourse, vectorcharacter result) {

if(sourse.size()==0){

for (int i = 0; i result.size(); i++) {

system.out. print(result.elementat(i));

}

system.out. print(\n);

count++;

return;

}

for (int i = 0; i sourse.size(); i++) { vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharacter( result); tresult.add(sourse.elementat(i)); tsourse.remove(i);

蓝桥杯模拟试题java本科组试题及复习资料

蓝桥杯模拟试题java本科组试题及复习资料

2021 模拟 java 本科

注意:

本套模拟题主要模拟命题形式及考核范围。真实竞赛题的数量、难度可能及此套模拟题有差异。

说明:

本试卷包含两种题型:“代码填空〞及“程序设计〞。

填空题要求参赛选手在弄清给定代码工作原理的根底上填写缺失的局部,使得程序逻辑正确、完整。所填写的代码不多于一条语句〔即不能出现分号〕。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据及试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。

1.代码填空〔总分值2分〕

在A B C D E F 六人中随机抽取3人中奖,要求中奖人不能重复。请完善以下代码:public class MyTest

public static void main(String[] args)

Vector a = new Vector();

for(char i='A'; i<='F'; i++) a.add("" + i);

for(int k=0; k<3; k++)

int d = ____________________________;

System.out.println(a.remove(d));

new Random().nextInt(6-k) //(int)(Math.random()*(6-k))

2.代码填空〔总分值3分〕

不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。下面的代码演示了如何把键盘输入的3进制数字转换为十进制。试完善之。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

蓝桥杯2022年java试题基础练习

蓝桥杯2022年java试题基础练习

蓝桥杯2022年java试题基础练习⼀:基础练习:

(本⽂只附代码,解析后续修改后添上)

1.a+b问题:

代码如下:

1 1 import java.util.*;

2 2 public class Main {

3 3 public static void main(String args[]) {

4 4 int a,b;

5 5

6 6 Scanner input = new Scanner(System.in);

7 7 a = input.nextInt();

8 8 b = input.nextInt();

9 9

10 10 System.out.println(a+b);

11 11 }

12 12 }

View Code

2.序列排序问题:

代码如下:

1 1 import java.util.Arrays;

2 2 import java.util.Scanner;

3 3

4 4 public class Main {

5 5 public static void main(String[] args) {

6 6 Scanner scanner = new Scanner(System.in);

7 7 int n = scanner.nextInt();

8 8 int[] arr = new int[n];

9 9 //往数组添加元素,接收数据

10 10 for (int i = 0; i < n; i++) {

11 11 arr[i] = scanner.nextInt();

12 12 }

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蓝桥杯java练习题分类汇总

(一)字符串处理类型题目

1.密码破解

据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。

密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M

原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

(注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。)

输入:最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:

1.起始行:START

2.密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.

3.结束行:END

在最后一个数据集之后,是另一行:ENDOFINPUT。

输出:

每个数据集对应一行,是凯撒的原始消息。

⏹Sample Input

START

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

END

START

N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ

END

START

IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ END

ENDOFINPUT

⏹Sample Output

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME

DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

2. 判断是否为回文串

形如:“abccba”,“abcba”的串称为回文串(指顺读和倒读都一样的词

语),下列代码判断一个串是否为回文串。请补充空白的部分。

public static boolean is_palindrome(_String str________________)

{

int len=str.length();

for(int i=0;i<_______len_____;i++)

{

if(str.charAt(i)!=str.charAt(______len-i______))return false;

}

___return true__________________;

}

(二)Brute-force类型题目

1.求最大数

问555555的约数中最大的三位数是多少?

2.判断101-200之间有多少个素数,并输出所有素数。

提示:素数又称为质数,判断素数的方法:用该数分别去除2到这个数的平方根之间的所有整数,如果能被整除,则表明非素数,否则为素数。3.借书方案

小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?

4.阶梯长度

有一条长阶梯(不超过200),若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?

5.完数

/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3. 编程找出1000以内的所有完数。*/

6.比赛安排

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c 说他不和x,z比,请编程序找出三队赛手的名单。

7.求数字

数学中有一些很有趣的数字,比如:一个数的的平方的尾数等于这个数,例如:5x5=25,5是25的尾数、25x25=625,25是625的尾数。求50000以内具有这一特性的数字。

8.抽奖

某企业为了促销,搞抽奖宣传活动,奖品为新款手机一部,抽奖规则如下:

(1)有n个盒子摆成一圈,盒子按顺时针方向依次编号为0,1,2,……,

n-1。手机随机放在其中一个盒子中。(n为自然数)

(2)从0号盒子开始摸奖,顺时针方向计数,每遇到第m个盒子就摸奖一次。(m为自然数,m

(3)直到重新摸到0号盒子为止。

例如n=5,m=3,那么摸奖经过的盒子编号依次为0,3,1,4,2,0。

请编写一个完整的程序,随机输入n,m(m

(三)递归算法

1.排列数的推算

计算3个A,2个B可以组成多少种排列的问题(如:AAABB,AABBA)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。请完善它。

int f(int m,int n)

{

if(m==0||n==0)return1;

return_______________________;

}

2.年龄推算

第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?

3.猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(提示:定义一个恰当的递归函数,边界条件为第9天的桃子数)。

4.Hanoi塔问题

设有S、A、G共三根塔座,在塔座S上堆叠n个金盘,每个盘大小不同,只允许小盘在大盘之上,最底层的盘最大,如下图所示。现在要求将S上的盘全部移到G,每次只能移动一个盘,圆盘可以插在S、A、G任一个塔座上,任意时刻大盘不能放在小盘之上。试用递归算法输出移动金盘的步骤。例如:当n=3时,输出的移动步骤如下:

move 1 from S to G

move 2 from S to A

move 1 from G to A

move 3 from S to G

move 1 from A to S

相关文档
最新文档