蓝桥杯 ADV-239 算法提高 P0102 (进制转换) (java)

来源:互联网 发布:人类会毁于人工智能吗 编辑:程序博客网 时间:2024/05/02 23:51

算法提高 P0102  
时间限制:1.0s   内存限制:256.0MB
    
  用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位,若不够前面补0。(不考虑输入不合法的情况)
输入
  1D5
输出
(注意冒号后面有一个空格)
  Hex: 0x1D5
  Decimal: 469
  Octal: 0725

总结该题目中使用的类或方法:

1、Integer.valueOf(xString, 16):第二个参数16为xString使用的基数(进制),结果是一个表示字符串指定的整数值的 Integer 对象。(整形值采用十进制整数表示)

2、Integer.toBinaryString(int i):将十进制转化为2进制

3、Integer.toHexString(int i):将十进制转化为16进制

4、Integet.toOctalString(int i):将十进制转化为8进制

5、Integer.parseInt(String s):将字符串s转化为整形

6、两个字符串连接:String a = "1";  String b="2";  Stirng c=a+b;    c为12。

7、字符串string的所有字符转化为大写:string.toUpperCase();


代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);String xString = scanner.next();String shiString = Integer.valueOf(xString, 16).toString();//10进制int shijinzhi = Integer.parseInt(shiString);String bajinzhi = Integer.toOctalString(shijinzhi);//八进制String shiliujinzhi = Integer.toHexString(shijinzhi).toUpperCase();//十六进制(大写)//判断十六进制是否为3位,补0if(shiliujinzhi.length()==1){String temp = "0x00";shiliujinzhi=temp+shiliujinzhi;}else if(shiliujinzhi.length()==2){String temp = "0x0";shiliujinzhi=temp+shiliujinzhi;}else if(shiliujinzhi.length()==3){String temp = "0x";shiliujinzhi=temp+shiliujinzhi;}//判断八进制是否为4位,补0if(bajinzhi.length()==1){String temp = "000";bajinzhi=temp+bajinzhi;}else if(bajinzhi.length()==2){String temp = "00";bajinzhi=temp+bajinzhi;}else if(bajinzhi.length()==3){String temp = "0";bajinzhi=temp+bajinzhi;}System.out.println("Hex: "+shiliujinzhi);System.out.println("Decimal: "+shijinzhi);System.out.println("Octal: "+bajinzhi);}}


原创粉丝点击