华为机试HJ5:进制转换

简介: 华为机试HJ5:进制转换

题目描述:

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

输入描述:

输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据。

输出描述:

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

示例:

输入:

0xA 0xAA

输出:

10 170

解题思路:

取巧的办法直接以cin和cout自带的功能,16进制读取,10进制输出;硬解的话,就是用十进制和十六进制的转换关系式做了。

测试代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int input;
    // cin>>hex输入的是16进制的,输出为10进制的,直接搞定
    while(cin>>hex>>input)
    {
        cout<<input<<endl;
    }
    return 0;
}

硬解的做法

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
 int main()
 {
     string s;
     while(cin>>s)
     {
         int bit=0;
         int ans =0;
         for(int i=s.length()-1;i>1;i--)
         {
             if(s[i]>='0'&&s[i]<='9')
                 ans+=(s[i]-'0')*pow(16,bit++);
             else if(s[i]>='A'&&s[i]<='F')
                 ans+=(s[i]-'A'+10)*pow(16,bit++);
         }
         cout<<ans<<endl;
     }
     return 0;
 }


相关文章
|
6月前
|
算法
华为机试HJ14:字符串排序
华为机试HJ14:字符串排序
|
6月前
|
人工智能
华为机试HJ26:字符串排序
华为机试HJ26:字符串排序
|
6月前
华为机试HJ96:表示数字
华为机试HJ96:表示数字
|
6月前
|
C++ Python
华为机试HJ50:四则运算
华为机试HJ50:四则运算
|
6月前
|
容器
华为机试HJ89:24点运算
华为机试HJ89:24点运算
|
6月前
|
测试技术
华为机试HJ85:最长回文子串
华为机试HJ85:最长回文子串
|
6月前
|
算法
华为机试HJ108:求最小公倍数
华为机试HJ108:求最小公倍数
|
6月前
华为机试HJ100:等差数列
华为机试HJ100:等差数列
|
6月前
|
算法 测试技术
华为机试HJ67:24点游戏算法
华为机试HJ67:24点游戏算法
|
6月前
华为机试HJ103:Redraiment的走法
华为机试HJ103:Redraiment的走法
144 2