一:基础练习:

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

  1.a+b问题:

    代码如下:

    

 1 import java.util.*;
2 public class Main {
3 public static void main(String args[]) {
4 int a,b;
5
6 Scanner input = new Scanner(System.in);
7 a = input.nextInt();
8 b = input.nextInt();
9
10 System.out.println(a+b);
11 }
12 }

  2.序列排序问题:

    代码如下:

    

 1 import java.util.Arrays;
2 import java.util.Scanner;
3
4 public class Main {
5 public static void main(String[] args) {
6 Scanner scanner = new Scanner(System.in);
7 int n = scanner.nextInt();
8 int[] arr = new int[n];
9 //往数组添加元素,接收数据
10 for (int i = 0; i < n; i++) {
11 arr[i] = scanner.nextInt();
12 }
13
14 //对数组排序
15 Arrays.sort(arr);
16
17 //打印数组
18 for (int i = 0; i < n; i++) {
19 System.out.print(arr[i] + " ");
20 }
21 }
22 }

  3.十六进制转八进制:

    代码如下:

      

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Question1(); }
public static void Question1() {
Scanner in = new Scanner(System.in);
int n = Integer.parseInt(in.nextLine());
int i, j;
String[] sz = new String[n];
//读入十六进制数
for (i = 0; i < n; i++) {
sz[i] = in.next();
}
for(i = 0; i < sz.length; i++) {
String s = sz[i];
StringBuilder sb = new StringBuilder();
//将一位十六进制数转换为四位二进制数
for(j = 0; j < s.length(); j++) {
switch(s.charAt(j)) {
case '0':
sb.append("0000");
break;
case '1':
sb.append("0001");
break;
case '2':
sb.append("0010");
break;
case '3':
sb.append("0011");
break;
case '4':
sb.append("0100");
break;
case '5':
sb.append("0101");
break;
case '6':
sb.append("0110");
break;
case '7':
sb.append("0111");
break;
case '8':
sb.append("1000");
break;
case '9':
sb.append("1001");
break;
case 'A':
sb.append("1010");
break;
case 'B':
sb.append("1011");
break;
case 'C':
sb.append("1100");
break;
case 'D':
sb.append("1101");
break;
case 'E':
sb.append("1110");
break;
case 'F':
sb.append("1111");
break;
}
}
//再将二进制数转换成八进制数
transform(sb);
} }
public static void transform(StringBuilder sb) {
int num = sb.length() % 3;
//判断长度是否为3的倍数
switch(num) {
case 0:
//若转换的八进制数中第一位为0则删去
if(sb.substring(0, 3).equals("000"))
sb.delete(0, 3);
break;
case 1:
if(sb.substring(0, 1).equals("0"))
sb.delete(0, 1);
else sb = sb.insert(0, "00");
break;
case 2:
if(sb.substring(0, 2).equals("00"))
sb.delete(0, 2);
else sb = sb.insert(0, "0");
break;
}
StringBuilder res = new StringBuilder();
int len = sb.length();
String[] new_s1 = new String[len/3];
//取三位转换成八进制数
for(int i = 0; i < len/3; i++) {
int tmp = Integer.parseInt(sb.substring(i * 3, i * 3 + 3), 2);
res.append(tmp);
}
System.out.println(res);
}
}

4.十六进制转十进制:

  代码如下:

    

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
System.out.print(Long.parseLong(string, 16));
}
}

5.十进制转十六进制:

  代码如下:

    

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
one(input.nextInt()); } public static void one(int a){
int b;
if(a<=15) {
tohax(a);
// System.out.print(a); }
else{
b=a%16;
one(a>>4);
tohax(b);
// System.out.print(b);
}
}
public static void tohax(int c){
switch (c){
default:
System.out.print(c);
break; case 10:
System.out.print("A");
break;
case 11:
System.out.print("B");
break;
case 12:
System.out.print("C");
break;
case 13:
System.out.print("D");
break;
case 14:
System.out.print("E");
break;
case 15:
System.out.print("F");
break; }
}
}

6.特殊的回文数:

  代码如下:

    

import java.util.Scanner;

public class Main {
final static byte one = 1;//常量1.
final static byte two = 2;//常量2.
final static byte ten = 10;//常量10; //输入:正整数n。 //输出:y行,每行为一个回文数。
/*
* 格式:回文数每个数的和都为n
* 从左读和从右读是一样的,所以是关于y轴对称。
* 数据大小:10001-999999。n的大小为2-54.
* 5位的是2-45,6位的是2-54.
* 要求:10进制,五位到六位的所有正整数。
* 从小到大输出结果。
* */ //程序如下:
//1.输入正整数n。
//2.判断是否是偶数,不是,则说明一定是5位。
//3.判断是否小于45,不是,则说明一定是6位。
//4.求5位。输出结果
//5. 求6位。输出结果
public static void main(String[] args) { Scanner input = new Scanner(System.in);
byte in = input.nextByte(); //获取到输入到2-54的一个正整数。 if (in % two != 0) {
askfive(in);//不是偶数,就只求5位
} else if (in > 45) {
asksix(in);//大于45,就只求6位。
} else {//都不是,就要求5位和6位。
askfive(in);
asksix(in);
}
} public static void askfive(byte in) {
//求5位数。
//先确定第一位最小值存不存在。
for (int i = one; i <ten ; i++) {//第一位
for (int j = 0; j <ten ; j++) {//第二位
final int i0 = in - two * i - two * j;
if (i0 < ten&&i0>=0) {//求第一位等于第五位,第二位等于第四位,第三位是否满足小于10的要求的数存在。
System.out.println(i+""+j+""+i0+""+j+""+i); }
}
}
} public static void asksix(byte in) {
//求6位数。
//先确定第一位最小值存不存在。
for (int i = one; i <ten ; i++) {//第一位数
for (int j = 0; j <ten ; j++) {//第二位数
final int i1 = (in - two * i - two * j) / two;
if (i1 < ten&&i1>=0) {//第三位数成立
System.out.println(i+""+j+""+ i1 +""+ i1 +""+j+""+i);
} } }
} }

7.回文数:

  代码如下:

    

public class Main {

    /*
* 输入:无
* 输出:回文数
* 格式要求:长度是四位的十进制数。关于y轴对此,第一位等于第四位,第二位等于第三位。
* 范围是1001-9999.
* 要求:从小到大。
* */ //编程思路:
//1.从第一位为1,第二位为0,开始循环。
//2、输出所有这样的数。 public static void main(String[] args) {
for (int i = 1; i <10 ; i++) {//第一位
for (int j = 0; j < 10; j++) {//第二位
System.out.println(i+""+j+""+j+""+i);
}
}
}
}

8.特殊的数字:

  代码如下:

    

public class Main {
final static byte ten = 10;//常量10;
final static byte three = 3;//常量3; /*
* 输入:无
* */ /*
* 输出:n行,三位的十进制
* 格式要求:从小到大。
* */ //程序思路:
//1、范围是从100-999.而根据立方根来推断,如果从立方根下手,最小要从105(1+125>100)开始循环,最大到962(8+216+729<999)
// 2.对三个数循环,求和,判断是否等于自己的10进制。
// 3.输出所有相等的数。 public static void main(String[] args) {
for (int i = 105; i <963 ; i++) {
int a = i % ten;//个位。
int b = (i / ten)%ten;//十位位。
int c = i/100 ;//百位。
if (i == (Math.pow(a, three) + Math.pow(b, three) + Math.pow(c, three))) {
System.out.println(i);
} } } }

9.杨辉三角:

  代码如下:

    

import java.util.Scanner;

public class Main {

    /*
* 输入:整数n
* 格式要求:n的范围是1-34.
* */ /*
* 输出:n行,每一行是杨辉三角的数。
* 格式要求,每一行的每个数要按顺序输出,并且要使用一个空格分隔。
* */ //程序思路:
//1、输入一个byte大小的数,n
//2、根据Cn,循环和递归的方式来求每一行每一个数 public static void main(String[] args) { Scanner input = new Scanner(System.in);
byte n = input.nextByte();//获取整形n。 askYh(n); }
public static void askYh(byte n) {//求杨辉的某行。
int b = n-1;//C的下方。
if (b == 0) {//说明是第一行
System.out.println("1");
}
for (int i = 0; i < n; i++) {//n行。
for (int j = 0; j <=i; j++) {//对C的上方从0到i循环,不能大于i。
int out = askJc(i, j) / askJc02(i, j);
System.out.print(out + " ");
}
System.out.println();//换行。
}
} public static int askJc(int i,int j) {//求b!/i!
//递归调用
if (i == j + 1) {
return i;
}
if (i == j) {//当c的上方和下方相同的时候,返回1.
return 1;
}
return i*askJc(i-1,j);
} public static int askJc02(int i,int j) {//求(b-i)!
if ((i == j + 1)||(i == j)) //当i-j = 1 的和i=j的时候
return 1; return (i - j) * askJc02(i - 1, j);
} }
 1 import java.util.Scanner;
2
3 public class test04 {
4
5
6 /*
7 * 输入:整数n
8 * 格式要求:n的范围是1-34.
9 * */
10
11 /*
12 * 输出:n行,每一行是杨辉三角的数。
13 * 格式要求,每一行的每个数要按顺序输出,并且要使用一个空格分隔。
14 * */
15
16
17 //程序思路:
18 //1、输入一个byte大小的数,n
19 //2、根据Cn,循环和递归的方式来求每一行每一个数
20
21
22 public static void main(String[] args) {
23
24 Scanner input = new Scanner(System.in);
25 byte n = input.nextByte();//获取整形n。
26
27 askYh(n);
28
29 }
30 public static void askYh(byte n) {//求杨辉的某行。
31 int b = n-1;//C的下方。
32 if (b == 0) {//说明是第一行
33 System.out.println("1");
34 }
35 for (int i = 0; i < n; i++) {//n行。
36 for (int j = 0; j <=i; j++) {//对C的上方从0到n-1循环
37 int out = askJc(i, j) / askJc02(i, j);
38 System.out.print(out + " ");
39 }
40 System.out.println();//换行。
41 }
42 }
43
44 public static int askJc(int i,int j) {//求b!/i!
45 //递归调用
46 if (i == j + 1) {
47 return i;
48 }
49 if (i == j) {//当c的上方和下方相同的时候,返回1.
50 return 1;
51 }
52 return i*askJc(i-1,j);
53 }
54
55 public static int askJc02(int i,int j) {//求(b-i)!
56 if ((i == j + 1)||(i == j)) //当b-i = 1 或者i=j的时候。
57 return 1;
58
59 return (i - j) * askJc02(i - 1, j);
60 }
61
62 }

  //未完,待更。。。

蓝桥杯2022年java试题的更多相关文章

  1. 取球游戏_nyoj_518(博弈-蓝桥杯原题).java

    取球游戏 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2   描述 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下 ...

  2. 蓝桥杯算法训练 java算法 表达式求值

    问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的值. 样例输入 1-2+3*(4-5) 样例输出 - ...

  3. 记 2019蓝桥杯校内预选赛(JAVA组) 赛后总结

    引言 好像博客好久没更新了 哈哈哈哈哈 趁现在有空更新一波 不知道还有没有人看 确实该记录一下每天做了什么了 不然感觉有些浑浑噩噩了 比赛介绍 全称: 蓝桥杯全国软件和信息技术专业人才大赛 蓝桥杯 实 ...

  4. 蓝桥杯-四平方和-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  5. 蓝桥杯- 移动距离-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  6. 蓝桥杯-密码发生器-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  7. 蓝桥杯-括号问题-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  8. 蓝桥杯-扑克牌移动-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  9. 蓝桥杯-放麦子-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

随机推荐

  1. 《剑指offer》面试题32 - I. 从上到下打印二叉树

    问题描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印.   例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回 ...

  2. Linux中的一些基本命令

    文章目录 ls cd Linux的目录 文件的权限 1.用户,组,权限 2.文件的权限 文件的基本操作 增:创建文件 删:删除文件 改:修改文件 查:查看 vi/vim 是一个编辑工具,主要用来编辑文 ...

  3. 【记录一个问题】thanos receiver在tsdb切换期间,导致remote write接口失败增加

    如图:配置了thanos receiver落盘的时间周期为10分钟,结果导致在切换tsdb期间,remote write接口的失败率增高. 目前看来,解决办法就是上游增加重试.

  4. 观察者模式(Observer模式)

    模式的定义与特点 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.这种模式有时又称作发布-订阅模式.模型- ...

  5. Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;

    因为公司阿里服务器变动几次,手动部署了好几次fastdfs+nginx,于是就想到了自动化部署,以下为脚本内容,由于只是想把着功能实现,并未有完完整的判断逻辑: 以下为ansible-playbook ...

  6. Druid未授权访问实战利用

    Druid未授权访问实战利用 ​ 最近身边的同学都开始挖src了,而且身边接触到的挖src的网友也是越来越多.作者也是在前几天开始了挖src之路.惊喜又遗憾的是第一次挖src就挖到了一家互联网公司的R ...

  7. webpack学习:uni运行时代码解读一 (页面初始化加载)

    uni的vue代码是如何在微信小程序里面执行的,对此比较感兴趣所以去调试学习了一波. 准备工作 // 在vue.config.js里打开非压缩的代码 module.exports = { config ...

  8. Java 高效编程(Effective Java)中文第三版(补档)

    来源:sjsdfg/effective-java-3rd-chinese <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过, ...

  9. react 配置使用less后缀文件

    //安装less less less-loader npm install less less-loader --save-dev 安装完成后,在项目中的config目录下找到webpack.conf ...

  10. G1垃圾收集器

    G1(Garbage-First) G1是一种服务端应用使用的垃圾收集器,目标是用在多核.大内存的机器上,它在大多数情况下可以实现指定的GC暂停时间,同时还能保持较高的吞吐量. 特点 压缩空闲空间不会 ...