zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【华为OD机试】1004 - 进制转换

转换华为 机试 OD 进制 1004
2023-09-14 09:05:30 时间


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:华为OD机试(Java&Python&C语言)

一、题目


🔸题目描述

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


🔸输入输出

输入
输入一个十六进制的数值字符串。
 
输出
输出该数值的十进制字符串。不同组的测试用例用\n隔开。


🔸样例1

输入
0xAA

输出
170

二、代码参考

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String s = sc.nextLine();
            System.out.println(Integer.parseInt(s.substring(2,s.length()),16));
        }
    }
}


--------------------------------------------------------

while True:
    try:
        str1 = input()
        str2 = str1[2:]
        n = len(str2)
        dic = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
        x1 = 0
        for word in str2:
            if word in dic:
                x1 = x1 + dic[word]*16**(n-1)
                n = n - 1
            else:
                x1 = x1 + int(word)*16**(n-1)
                n = n - 1
        print(x1)

    except:
        break
        



--------------------------------------------------------------

#include<stdio.h>
int main(){
    int hex;
    while(~scanf("%x",&hex));{ // %i也可
         printf("%d\n",hex);
    }
}



在这里插入图片描述


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习