题解 | #链表中环的入口结点#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

题解:
import java.util.Scanner;

/*写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,
*/
public class Main {
    private static String str;//十六进制的字符串
    private static void translate(String str){
        //十六进制转换为十进制
        String s = str.substring(2);
        char [] ch = s.toCharArray();
        int n = ch.length;
        long res = 0;
        for( int i=0;i<n;i++){
           if((int)ch[i]-48>9){
               if(ch[i]=='A'){
                   res+=10*Math.pow(16,n-i-1);
               }else if(ch[i]=='B'){
                   res+=11*Math.pow(16,n-i-1);

               }else if(ch[i]=='C'){
                   res+=12*Math.pow(16,n-i-1);

               }else if(ch[i]=='D'){
                   res+=13*Math.pow(16,n-i-1);

               }else if(ch[i]=='E'){
                   res+=14*Math.pow(16,n-i-1);

               }else if(ch[i]=='F'){
                   res+=15*Math.pow(16,n-i-1);

               }
           }else{
               res+=((int)ch[i]-48)*Math.pow(16,n-i-1);
           }
        }
      String res1 = String.valueOf(res);
        System.out.println(res1);

    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            str = sc.nextLine();
            translate(str);
        }
    }
}

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务