华为编程题---进制转换

来源:互联网 发布:java什么类不能被继承 编辑:程序博客网 时间:2024/05/29 11:11

[编程题] 进制转换

时间限制:1秒

空间限制:32768K

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )


输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

输入例子:
0xA
输出例子:
10

思路:这个题主要的问题是字符串转化成整数的问题。其他没有什么难点

程序:

#include <bits/stdc++.h>#include <cstdio>#include <algorithm>#include <string>//#include <cstring>using namespace std;#define ll long long using namespace std;int solve(char c){    if(c>='a' && c<='f')        return c-'a'+10;    else if(c>='A' && c<='F')        return c-'A'+10;    else         return c-'0';      }int solve1(int value){int temp=1;while(value>0){temp*=16;value--;}return temp;}int main(){    string str;    while(cin>>str)    {        int n=str.size();        int sum=0;        for(int i=2;i<n;i++){             sum+=solve(str[i])*solve1(n-1-i);}          cout<<sum<<endl;    }    return 0;}

原创粉丝点击