蓝桥杯练习day02

一、十进制转换为十六进制

        

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner sc = new Scanner(System.in);
		int decimalNumber = sc.nextInt();
		String hexValue = "";
		if (decimalNumber==0) {
			System.out.println(0);
			return;
		}
		while (decimalNumber != 0) {
		    int remainder = decimalNumber % 16;
		    char hexDigit = (char) (remainder < 10 ? remainder + '0' : remainder - 10 + 'A');
		    hexValue = hexDigit + hexValue;
		    decimalNumber = decimalNumber / 16;
		}
		
		System.out.println(hexValue);  
	}

难理解的地方:
 

  • remainder < 10 ? remainder + '0' : remainder - 10 + 'A'这是一个条件表达式(也称为三元运算符),用于根据余数的值选择要转换为十六进制的字符。

    1. 条件部分 remainder < 10 检查余数是否小于10。
    2. 如果条件为真,即余数小于10,则执行 remainder + '0',其中'0'表示ASCII码为48的字符0。这里将余数和字符0相加,得到对应的字符。
    3. 如果条件为假,即余数大于等于10,则执行 remainder - 10 + 'A',其中'A'表示ASCII码为65的字符A。这里将余数减去10,再与字符A相加,得到对应的字符。

    Integer范围:[-2147483648, 2147483647] 
      

  //十进制转换十六进制字符串
        String numHex = Integer.toHexString(num);
        System.out.println(numHex);

二、强制转换

  • 类型转换都是小范围向大范围转换的,大范围往小范围转化需要用到强制转换,转换后的值会有所损失。
  • 不同数据类型精度由小到大排列如下:
    char-->byte --> short --> int --> long --> float --> double 
  • 从double转换到float可能会有损失,所以解决方案就是在float类型的常量后面+F

 三、杨辉三角
 

1
1 1
1 2 1
1 3 3 1
1 2 6 4 1

1.每行首尾都是1
2.每行数字左右对称
3.第n行的数字有n列
4.每列上的元素值 = 上一行当前列元素值 + 上一行上一列元素值

详细内容:
https://blog.csdn.net/xyint/article/details/129770039

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值