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

题目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. transform-translate3d

    translate3d 开启硬件加速,做动效效率比 position 定位置后,改变位置,效果好,比如下拉背景放大效果,上滑的时候背景跟着上滑,可以用 translate3d.亲测效果更好,记下来

  2. vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。

    废话不多说,直接进入正题,此文以配置不同的接口域名地址为例子 项目根目录下有一个config文件夹,基础项目的话里面至少包括三个文件, 1.dev.env.js 2.index.js 3.prod.e ...

  3. 【基准测试】BenchmarkDotNet介绍

    BenchmarkDotNet 概述 BenchmarkDotNet helps you to transform methods into benchmarks, track their perfo ...

  4. Docker在centos上的安装与常用命令大全

    docker的安装与加速器配置 安装docker:yum install docker (默认安装路径/var/lib/docker) 启动docker服务:systemctl start docke ...

  5. 「雕爷学编程」Arduino动手做(39)——DS18B20温度传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  6. Oracle百万数据查询语句

    SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT id, name, age, birthDate, sex, describe, city, cre ...

  7. Blazor WebAssembly 3.2 正式发布

    5月 20日,微软 发布了 Blazor WebAssembly 3.2(https://devblogs.microsoft.com/aspnet/blazor-webassembly-3-2-0- ...

  8. js 简单有效判断日期有效性(含闰年)

    原文:https://zhidao.baidu.com/question/1701946584925153620.html 要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/ ...

  9. 201771010128王玉兰实验一软件工程准备——<阅读《构建之法——现代软件工程》初步了解软件工程>

    |||||||||||||| |:--|:--| |项目|内容| |软件工程|https://www.cnblogs.com/nwnu-daizh/| |作业要求在博客里|https://www.cn ...

  10. CF834D

    题目链接:http://codeforces.com/contest/834/problem/D 题目大意:将一个有n个数的数列分成k段,每段的价值为该段中不同数字的个数,求k段的最大总价值. 解题思 ...