蓝桥杯练习题2

蓝桥杯练习第二天

今天练习了基础练习题库里面的题,由于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);
		}
	}
}
}

以上就是我今天所作的练习,仍有不足,但会改进,嘿嘿!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值