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

题目1、机器人数目

少年宫新近邮购了小机器人配件,共有3类,其中,

A类含有:8个轮子,1个传感器

B类含有: 6个轮子,3个传感器

C类含有:4个轮子,4个传感器

他们一共订购了100套机器人,收到了轮子600个,传感器280个。

根据这些信息请你计算:B类型机器人订购了多少个?

请直接提交该整数,不要填写任何多余内容。

答案:60

public class Main {

    public static void main(String[] args) {
for(int a = 0;a <= 100;a++)
for(int b = 0;b <= 100;b++)
for(int c = 0;c <= 100;c++) {
int a1 = a + b + c;
int b1 = 8 * a + 6 * b + 4 * c;
int c1 = a + 3 * b + 4 * c;
if(a1 == 100 && b1 == 600 && c1 == 280)
System.out.println("a = "+a+", b = "+b+", c = "+c);
}
}
}

题目2、生成回文数

所谓回文数就是左右对称的数字,比如:

585,5885,123321…

当然,单个的数字也可以算作是对称的。

小明发现了一种生成回文数的方法:

比如,取数字19,把它与自己的翻转数相加:

19 + 91 = 110,如果不是回文数,就再进行这个过程:

110 + 011 = 121 这次是回文数了。

200以内的数字中,绝大多数都可以在30步以内变成回文数,只有一个数字很特殊,就算迭代了1000次,它还是顽固地拒绝回文!

请你提交该顽固数字,不要填写任何多余的内容。

答案:196

public class Main {

    public long Reverse(long n) {
int len = new String(""+n).length();
long[] A = new long[len];
int i = 0;
while(n > 0) {
A[i++] = n % 10;
n = n / 10;
}
long result = 0;
for(i = 0;i < len;i++)
result = result * 10 + A[i];
return result;
} public static void main(String[] args) {
Main test = new Main();
for(long i = 0;i <= 200;i++) {
int count = 0;
long a = i;
long b = test.Reverse(a);
while(a != b) {
a = a + b;
b = test.Reverse(a);
count++;
if(count > 1000) {
System.out.println("i = "+i+", a = "+a+", b = "+b);
break;
}
}
}
}
}

题目3、空心菱形

标题:空心菱形

小明刚刚开发了一个小程序,可以打印出任意规模的空心菱形,规模为6时,如下图:
****** ******
***** *****
**** ****
*** ***
** **
* *
** **
*** ***
**** ****
***** *****
****** ******
(如果有对齐问题,参看【图1.png】) 他一高兴,踢掉了电源,最后一次修改没有保存.....
毛病出在划线的部分。
请你帮助小明分析程序,填写划线部分缺失的代码。 public class Main
{
static String pr(int m, int n)
{
String s = "";
for(int i=0; i<n; i++) s += " ";
for(int i=0; i<m; i++) s = "*" + s + "*";
return s;
} static void f(int n)
{
String s = pr(1,n*2-1) + "\n";
String s2 = s; for(int i=1; i<n; i++){
s = ____________________________________; //填空位置
s2 = s + s2 + s;
} System.out.print(s2);
} public static void main(String[] args)
{
f(6);
}
} 注意:只填写缺少的内容,不要填写题面已有代码或说明性文字。 答案:pr(i+1, (n-i)*2-1)+"\n"

题目4、奇怪的数列

从X星截获一份电码,是一些数字,如下:

13

1113

3113

132113

1113122113

YY博士经彻夜研究,发现了规律:

第一行的数字随便是什么,以后每一行都是对上一行“读出来”

比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113

第3行,意思是:3个1,1个3,所以是:3113

请你编写一个程序,可以从初始数字开始,连续进行这样的变换。

数据格式:

第一行输入一个数字组成的串,不超过100位

第二行,一个数字n,表示需要你连续变换多少次,n不超过20

输出一个串,表示最后一次变换完的结果。

例如:

用户输出:

5

7

则程序应该输出:

13211321322115

资源约定:

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

CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

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

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

import java.util.Scanner;

public class Main {

    public void getResult(String A, int n) {
while(n > 0) {
n--;
StringBuffer result = new StringBuffer("");
for(int i = 0;i < A.length();i++) {
int count = 1;
int j = i + 1;
for(;j < A.length();j++) {
if(A.charAt(i) == A.charAt(j))
count++;
else
break;
}
result.append(count);
result.append(A.charAt(i));
i = j - 1;
}
A = result.toString();
}
System.out.println(A);
} public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
String A = in.next();
int n = in.nextInt();
test.getResult(A, n);
}
}

题目5、密文搜索

福尔摩斯从X星收到一份资料,全部是小写字母组成。

他的助手提供了另一份资料:许多长度为8的密码列表。

福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。

请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。

数据格式:

输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024

紧接着一行是一个整数n,表示以下有n行密码,1<=n<=1000

紧接着是n行字符串,都是小写字母组成,长度都为8

要求输出:

一个整数, 表示每行密码的所有排列在s中匹配次数的总和。

例如:

用户输入:

aaaabbbbaabbcccc

2

aaaabbbb

abcabccc

则程序应该输出:

4

这是因为:第一个密码匹配了3次,第二个密码匹配了1次,一共4次。

资源约定:

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

CPU消耗 < 5000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

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

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner; public class Main { public void getResult(String A, String[] pwd) {
int count = 0;
ArrayList<Integer> list = new ArrayList<Integer>();
int[] num = new int[pwd.length];
for(int i = 0;i < pwd.length;i++) {
int hash = pwd[i].hashCode();
if(list.contains(hash)) {
int j = list.indexOf(hash);
num[j]++;
} else {
list.add(hash);
num[list.size() - 1]++;
}
}
for(int i = 0;i <= A.length() - 8;i++) {
String s = A.substring(i, i + 8);
char[] temp = s.toCharArray();
Arrays.sort(temp);
StringBuffer t = new StringBuffer("");
for(int j = 0;j < 8;j++)
t.append(temp[j]);
s = t.toString();
int hash = s.hashCode();
if(list.contains(hash)) {
int k = list.indexOf(hash);
count = count + num[k];
}
}
System.out.println(count);
} public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
String A = in.next();
int n = in.nextInt();
String[] pwd = new String[n];
for(int i = 0;i < n;i++) {
char[] arrayP = in.next().toCharArray();
Arrays.sort(arrayP);
StringBuffer s = new StringBuffer("");
for(int j = 0;j < arrayP.length;j++)
s.append(arrayP[j]);
pwd[i] = s.toString();
}
test.getResult(A, pwd);
}
}

题目6、居民集会

蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di。

每年,蓝桥村都要举行一次集会。今年,由于村里的人口太多,村委会决定要在4个地方举行集会,其中3个位于公路中间,1个位最公路的终点。

已知每户家庭都会向着远离公路起点的方向去参加集会,参加集会的路程开销为家庭内的人数ti与距离的乘积。

给定每户家庭的位置di和人数ti,请为村委会寻找最好的集会举办地:p1, p2, p3, p4 (p1<=p2<=p3<=p4=L),使得村内所有人的路程开销和最小。

【输入格式】

输入的第一行包含两个整数n, L,分别表示蓝桥村的家庭数和公路长度。

接下来n行,每行两个整数di, ti,分别表示第i户家庭距离公路起点的距离和家庭中的人数。

【输出格式】

输出一行,包含一个整数,表示村内所有人路程的开销和。

【样例输入】

6 10

1 3

2 2

4 5

5 20

6 5

8 7

【样例输出】

18

【样例说明】

在距起点2, 5, 8, 10这4个地方集会,6个家庭需要的走的距离分别为1, 0, 1, 0, 2, 0,总的路程开销为13+02+15+020+25+07=18。

【数据规模与约定】

对于10%的评测数据,1<=n<=300。

对于30%的评测数据,1<=n<=2000,1<=L<=10000,0<=di<=L,di<=di+1,0<=ti<=20。

对于100%的评测数据,1<=n<=100000,1<=L<=1000000,0<=di<=L,di<=di+1,0<=ti<=1000000。

资源约定:

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

CPU消耗 < 8000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

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

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

小编能力有限,这道题只能通过部分测试用例

import java.util.Scanner;

public class Main {
public static int n, L;
public static int[] D, T;
public static int[][] W; public int mergeValue(int start, int end, int count) {
if(count == 0)
return W[start][end];
int result = W[0][L];
for(int i = start + 1;i < end;i++) {
int left = mergeValue(start, i, count - 1);
int right = mergeValue(i, end, count - 1);
result = Math.min(result, left + right);
}
return result;
} public void getResult() {
for(int i = 0;i <= L;i++)
for(int j = i;j <= L;j++)
for(int k = 0;k < n;k++) {
if(D[k] > i && D[k] < j)
W[i][j] += (j - D[k]) * T[k];
}
int result = mergeValue(0, L, 2);
System.out.println(result);
} public static void main(String[] args) {
Main test = new Main();
Scanner in = new Scanner(System.in);
n = in.nextInt();
L = in.nextInt();
D = new int[n];
T = new int[n];
W = new int[L + 1][ L + 1];
for(int i = 0;i < n;i++) {
D[i] = in.nextInt();
T[i] = in.nextInt();
}
test.getResult();
}
}

第六届蓝桥杯JavaC组国(决)赛真题的更多相关文章

  1. 第六届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分机号 X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如: 751,520, ...

  2. 第六届蓝桥杯JavaA组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.胡同门牌号 小明家住在一条胡同里.胡同里的门牌号都是连续的正整数,由于历史原因,最小的号码并不是从1开始排的. 有一天小明突然发现了有 ...

  3. 第七届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.平方末尾 能够表示为某个整数的平方的数字称为"平方数" 比如,25,64 虽然无法立即说出某个数是平方数,但经常可 ...

  4. 第九届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5.1, 7.2) 求该三角 ...

  5. 第八届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.数位和 题目描述 数学家高斯很小的时候就天分过人.一次老师指定的算数题目是:1+2+-+100. 高斯立即做出答案:5050! 这次你 ...

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

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学. ...

  7. 第三届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1. 填算式 [结果填空] (满分11分) 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字. ...

  8. 第四届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜灯谜 题目描述 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字 ...

  9. 第五届蓝桥杯JavaA组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.海盗分金币 有5个海盗,相约进行一次帆船比赛. 比赛中天气发生突变,他们被冲散了. 恰巧,他们都先后经过途中的一个无名的荒岛,并且每个 ...

随机推荐

  1. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

  2. python实现登录密码重置简易操作

    需求: 1.用户输入密码正确登录 2.用户输入密码错误退出并调用函数继续输入 3.用户输入密码符合原先给定的一个值时,允许用户重置密码,并且可以用新密码登录 4.输入三次后禁止输入 虽然贴别的简单,但 ...

  3. MySQL的列约束

    1.列约束 (1)主键约束——PRIMARY KEY (2)非空约束——NOT NULL 声明了非空约束的列上,不允许使用NULL (3)唯一约束——UNIQUE 声明了唯一约束的列上不能插入重复的值 ...

  4. Python之字符串中是否包含子串的几种方法

    #第一种方式 :in a='abcdaac' b='a' c='db' print(b in a) print(c in a)  预览结果 #第二种方式:count()方法 a='abcdefgab' ...

  5. 封装 private

    封装表现: 1.方法就是一个最基本封装体. 2.类其实也是一个封装体. 从以上两点得出结论,封装的好处: 1.提高了代码的复用性. 2.隐藏了实现细节,还要对外提供可以访问的方式.便于调用者的使用.这 ...

  6. PHP 连接数据库基础操作

    <?phpheader('Content-type:text/html;charset=utf-8');//1建立 或者 关闭mysql服务器   @符号用于屏蔽错误信息$link=@mysql ...

  7. 计算机启动 Ubuntu系统初始化 SysV Systemd

    计算机启动过程 第一阶段:BIOS boot (bootstrap的缩写)来自一句谚语:"pull oneself up by one's bootstraps" 最早的时候,计算 ...

  8. FHQ-Treap学习笔记

    平衡树与FHQ-Treap 平衡树(即平衡二叉搜索树),是通过一系列玄学操作让二叉搜索树(BST)处于较平衡的状态,防止在某些数据下退化(BST在插入值单调时,树形不平衡,单次会退化成 \(\math ...

  9. 多用户vps管理面板怎么安装,有没有好用的vps管理工具

    一.VPS安装VPSMate控制面板步骤 1.使用SSH连接到VPS.使用命令获取VPSMate安装包: wget   http://www.vpsmate.org/tools/install.py ...

  10. Rocket - devices - bootrom

    https://mp.weixin.qq.com/s/PylfNmJDRasTUj9fGp7gLQ 简单介绍bootrom目录中各个文件的实现. 1. Makefile 1) make过程 Makef ...