zoukankan      html  css  js  c++  java
  • "蓝桥杯“基础练习: 十六进制转十进制

    问题描述
      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
    样例输入
    FFFF
    样例输出
    65535


    心得:

    本题也有陷阱,也是出在数据范围上,不超过8位的十六进制数,FFFFFFFF这个数就不行,所以计算16次方的那个函数返回值要用long long类型的。

    代码:

    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    long long mul(int n)//要用long long类型
    {
        long long s=1;
        for(int i=1;i<=n;i++)
            s*=16;
        return s;
    }
    
    int main()
    {
        long long a=0;
        string str;
        cin>>str;
        reverse(str.begin(),str.end());
        for(int i=0;i<str.length();++i)
        {
            int temp;
            if(str[i]>='0'&&str[i]<='9')
                temp=str[i]-'0';
            else
                temp=str[i]-55;
            a+=(temp*mul(i));
        }
        cout<<a;
        return 0;
    }
    

    运行:


  • 相关阅读:
    剧集更新表
    Pyhton资源
    JAVA资源
    012 循环
    011 条件判断
    010 使用list和tuple
    009 字符串和编码
    007 Python基础
    python 内置函数
    python 获取当前运行的类名函数名inspect.stack()[1][3]
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697805.html
Copyright © 2011-2022 走看看