写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:
0xA
0xAA
复制
输出:
10
170
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) { //注意while处理多个case int a = in.nextInt();
String s=in.nextLine();
int num=0;
if(s!=null){
int len=s.length();
if(len>1){
for(int i=2;i<len;i++){
num=num*16+changeNum(s.charAt(i));
}
}
System.out.println(num);
}
}
}
public static int changeNum(char a){
if(a>='0'&&a<='9'){
return a-'0';
}
else{
return (a-'A'+10);
}
}
}
将整个解决过程拆分
1:while (in.hasNextLine()) 解决的是多行输入问题
2 num=num*16+changeNum(s.charAt(i)) 16进制转化为10进制方法
3:changeNum函数 :A-F转变为数字
描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入:
1516000
复制
输出:
0006151
import java.util.*;
import java.lang.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int num=in.nextInt();
int tmp=num;
StringBuffer buffer =new StringBuffer();
while(tmp>0){
buffer.append(tmp%10);
tmp=tmp/10;
}
System.out.println(buffer.toString());
}
}
StringBuffer为可变长字符便,使用StringBuffer的变量存储,然后使用toString()转化为固定长度字符传输出