蓝桥杯练习第二天
今天练习了基础练习题库里面的题,由于java学习时间过长,很多知识都忘了,每道题练习的时间有些延长,今天也是要努力的一天呀!
- 十六进制转十进制
- 十进制转十六进制
- 特殊回文数
- 回文数
- 特殊的数字
十六进制转十进制
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
代码展示如下:
import java.util.Scanner;
/*
* 十六进制转为十进制
* */
public class jinzhizhuanhuan1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String hex_num = in.nextLine();
long dec_num = Long.parseLong(hex_num, 16);
System.out.println(dec_num);
}
}
本道题学习了java的Long.parseLong()方法
十进制转十六进制
问题描述
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
给出一个非负整数,将它表示成十六进制的形式。
代码展示如下:
import java.util.Scanner;
/*
* 十进制转换成十六进制
* */
public class shijinzhizhuanliu {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Integer n = in.nextInt();
in.close();
System.out.println(Integer.toHexString(n).toUpperCase());
}
}
//toUpperCase() 方法将字符串小写字符转换为大写。
//toHexString() 方法将十进制转换为十六进制
本道练习题我学习了Integer类的toHexString()方法以及toUpperCase()方法
特殊回文数
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
代码展示如下:
import java.util.Scanner;
public abstract class SpecialHuiwen {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
six_degit(num);
}
public static void six_degit(int num) {
for (int a = 1; a < 10; a++) {
for (int b = 0; b < 10; b++) {
for (int c = 0; c < 10; c++) {
for (int d = 0; d < 10; d++) {
for (int e = 0; e < 10; e++) {
if (a == e && b == d && (a + b + c + d + e == num)) {
System.out.println(a * 10000 + b * 1000 + c * 100 + d * 10 + e);
} else {
for (int f = 0; f < 10; f++) {
if (a == f && b == e && c == d && (a + b + c + d + e + f == num)) {
System.out.println(a * 100000 + b * 10000 + c * 1000 + d * 100 + e * 10 + f);
}
}
}
}
}
}
}
}
}
}
本道题学会了for循环嵌套层次遍历
回文数
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
/*
* 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
* */
public class huiwenshu2 {
public static void main(String[] args) {
for(int a=1;a<10;a++) {
for(int b=0;b<10;b++) {
for(int c=0;c<10;c++) {
for(int d=0;d<10;d++) {
if(a==d&&b==c) {
System.out.println(a*1000+b*100+c*10+d);
}
}
}
}
}
}
}
同特殊回文数一样的思路
特殊的数字
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
也就是我们所学习的基础水仙花数
/*
* 水仙花数
* */
public class Flower {
public static void main(String[] args) {
for(int i=100;i<999;i++) {
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i) {
System.out.println(i);
}
}
}
}
以上就是我今天所作的练习,仍有不足,但会改进,嘿嘿!!