「蓝桥杯第八届java真题」蓝桥杯第八届java真题及答案
本篇文章给大家谈谈蓝桥杯第八届java真题,以及蓝桥杯第八届java真题及答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、一道关于蓝桥杯java组的练习题,运行没有问题可是一提交到系统就显示错误,求各位大神赐教
- 2、java 蓝桥杯的一个算法题问题;
- 3、求解第三届蓝桥杯全国软件设计大赛java本科组预赛第八题!附题目。求教高手们。。!
- 4、蓝桥杯算法训练 java算法 表达式求值
- 5、蓝桥杯往年本科java试题。。。 非常感谢
一道关于蓝桥杯java组的练习题,运行没有问题可是一提交到系统就显示错误,求各位大神赐教
输入的十六进制数不会有前导0,比如012A。输出的八进制数也不能有前导0
你没有实现这一点。。。所以报错
java 蓝桥杯的一个算法题问题;
public class lanqiao6 {
public static void main(String[] args) {
int count = 0;
for (int a = 1; a 10; a++)
for (int b = 1; b 10; b++)
for (int c = 1; c 10; c++)
for (int d = 1; d 10; d++)
for (int e = 1; e 10; e++) {
SetInteger set = new HashSetInteger();
set.add(a);
set.add(b);
set.add(c);
set.add(d);
set.add(e);
if (set.size() != 5)
continue;
int sum1 = (a * 10 + b) * (c * 100 + d * 10 + e);
int sum2 = (a * 100 + d * 10 + b) * (c * 10 + e);
if (sum1 == sum2)
count++;
}
System.out.print(count);
}
}
//-_-|| 让你用深度优先搜索你整5个for循环真的好吗?
求解第三届蓝桥杯全国软件设计大赛java本科组预赛第八题!附题目。求教高手们。。!
你好
学习时间较短 真心不会。蓝桥杯全国软件设计大赛 你可以给我具体介绍下这个竞赛吗。
蓝桥杯算法训练 java算法 表达式求值
这两天看到的内容是关于栈和队列,在栈的模块发现了Dijkstra双栈算术表达式求值算法,可以用来实现计算器类型的app。
编程语言系统一般都内置了对算术表达式的处理,但是他们是如何在内部实现的呢?为了了解这个过程,我们可以自行搭建一套简易的算术表达式处理机制,这里就用到栈特性和本篇提到的Dijkstra算法。
概述:
算术表达式可能是一个数、或者是由一个左括号、一个算术表达式、一个运算符、另一个算术表达式和一个右括号组成的表达式。为了简化问题,这里定义的是未省略括号的算术表达式,它明确地说明了所有运算符的操作数,形式如下:
(1+((2+3)*(4*5)))
思路:
表达式由括号、运算符和操作数构成,我们根据以下4中情况从左至右逐个将这些实体送入栈处理:
1.将操作数压入操作数栈;
2.将运算符压入运算符栈;
3.忽略左括号;
4.在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算后的结果压入操作数栈;
在处理完最后一个右括号时,操作数栈上只会剩下一个值,它就是表达式的计算结果。这种方法咋一看难理解,但要证明它能计算得到正确的值很简单:
每当算法遇到一个括号包围,并由一个运算符和两个操作数组成的子式时,他都将运算符和操作数运算结果压入操作数栈。这样的结果就像是在输入中用这个值代替了该子表达式,因此用这个值代替子表达式得到的结果和原表达式相同。我们可以反复应用这个规律并得到一个最终值。
例如:
(1+((2+3)*(4*5)))
(1+(5*(4*5)))
(1+(5*20))
(1+100)
101
代码实现:
这里我采用C#来实现,最终运行效果完全符合预期,证明了此算法的正确性,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
namespace Evaluate
{
class Program
{
static void Main(string[] args)
{
string testExpress = "(1+((2+3)*(4*5)))";
Console.WriteLine(Evaluate(testExpress));
}
//DijkStra
static double Evaluate(string express)
{
var expressChars = express.ToArray();
Stack ops = new Stack();
Stack vals = new Stack();
if (express.Length 0)
{
foreach (var opt in expressChars)
{
switch (opt)
{
case '+':
case '-':
case '*':
case '/':
ops.Push(opt);
break;
case ')':
var op = ops.Pop();
var v = vals.Pop();
switch (op)
{
case '+':
v += vals.Pop();
break;
case '-':
v = vals.Pop() - v;
break;
case '*':
v *= vals.Pop();
break;
case '/':
v = vals.Pop() / v;
break;
}
vals.Push(v);
break;
case ' ':
case '(':
break;
default:
vals.Push(double.Parse(opt.ToString()));
break;
}
}
return vals.Pop();
}
return double.MaxValue;
}
}
}
总结:
Dijkstra算法充分利用了栈的特性,具备较高的执行效率,经过进一步的扩充修改,就完全可以实现具备科学计算功能的复杂计算类app。如果大家还有更好的,更适用的算法,欢迎在评论中给出地址,谢谢。
转载
蓝桥杯往年本科java试题。。。 非常感谢
一、单选题目(主要考擦java基础知识 好像25道)
1、String与StringBuffer区别 如:
2、final中的return switch中的break和return 执行的顺序和执行结果
3、for; do...while(); while()....do;循环的执行过程 涵盖 、 -- 的考核
4、循环中的break与continue
5、数组的定义:如:
有如下数组:
byte[] array1,array2[]
byte array3[][]
byte[][] array4
假设每个变量都已初始化,一下哪一条语句会导致编译错误?
A、array2 = array1; B、array2 = array3; C、array2 = array3;
D、A并且B ; E、A并且C ; F、B并且C ;
6、执行一下代码后,哪个结论是正确的?
A、s[10]为""; B、s[9]为null;
C、s[0]为未定义; D、s.length()为10;(详见《Java习题语言习题与解析》一书。P46)
7、构造函数定义的考核、继承、多态(文字描述的判断)
8、递归函数程序的考核,选择输出结果
9、静态成员,与非静态成员
10、函数重载(在多选里也出现、主要是选择哪个跟哪个构成重载,或否)
11、final static 的考核:如
A、static class TT{}
B、private class TT{}
C、abstract class TT{}
D、final public class TT{}
E、final abstract class TT{}
12、String对象分析一下程序:
public class X{
public static void main(String[] args){
String s = new String("Hello");
modify(s);
System.out.println(s);
}
public static void modify(String s){
s = " world!";
}
}
该程序执行结果为:
A、编译成功,执行后输出:“Hello”
B、编译失败
C、编译成功,执行后输出"Hello word!"
D、编译成功,执行后引起异常
答案:A
13、静态方法构造方法 重载函数 覆盖的定义
14、文件操作
15、线程???(记不清)
二、多选题(五道)
1、重载:指出下列哪些方法与方法public void add(int a){}重载()
A、public int add(int a)
B、public void add(long a)
C、public void add(int a,int b)
D、public void add(float)
2、内部类与static
下面哪几种陈述是成立的?
A、一个内部类可声明为静态的
B、一个匿名内部类可声明为私有的
C、一个匿名内部类可声明为公共的
D、一个匿名内部类可声明可以继承一个抽象类
E、一个匿名内部类可声明为保护型
答案:AB
3、内部类的声明:
下面哪两个内部类的声明是合适的?
1.public class OuterClass{
private double d1 = 1.0;
//插入内部类代码
}
A、static class InnerOne{
public double methoda(){return d1;}
}
B、static class InnerOne{
static double methoda(){return d1;}
}
C、private class InnerOne{
public double methoda(){return d1;}
}
D、protected class InnerOne{
static double methoda(){return d1;}
}
E、public abstract class InnerOne{
public abstract double methoda(){return d1;}
}
答案:CE
在静态方法中不能访问静态成员,D也是静态方法中反问非静态成员。
4、下列陈述对默认的构造方法是成立的?
A、默认的构造方法为方法变量进行初始化
B、编译程序会为每一个类创建默认的构造方法
C、默认的构造方法调用其超类的无参数构造方法
D、默认的构造方法初始化在类中声明的实例变量
E、当一个仅有带参数的构造方法时,编译程序不会给这个类创建默认的构造方法
F、当一个类没有其他构造方法时,编译程序才为其创建默认的构造方法
答案:DEF
5、一道关于多态的选择题
三、填空题 5道
填空题,主要学会察API,开始会有API提供,可以进行运行调试。
1、文件操作、IO流的操作
2、重写父类方法
3、从API找方法,实现功能。(具体题目忘了)
4、接口???
5、。。。。
四、代码完善题
这道题,要规范的按照题目要求来做,
题目大概是这样:要求对26个字母实现,这样的运算
1、对26个字母求补集
2、对两个集合(都是字母) 求交集
3、求并集、求并集分两种:第一、把两个相加,第二、把两个重复出现的删除,
4、求差集,两个集合,或者是,一个集合对全集26个字母求差集。
蓝桥杯第八届java真题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于蓝桥杯第八届java真题及答案、蓝桥杯第八届java真题的信息别忘了在本站进行查找喔。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。