题解 | #进制转换#

进制转换

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

递归实现数值转换
可以适当修改实现结果为32位以内的任何数值转换
#include<iostream>
using namespace std;
int quickpower(int a,int n){
    int ans=1;
    while(n){
        if(n&1)ans*=a;
        a*=a;
        n=n>>1;
    }
    return ans;
}
int fun(string s,int idx){
    if(idx==s.size()-1){
        char c=s[idx];
        if(c>='A'&&c<='Z')c=tolower(c);
        int temp= c>='0'&&c<='9' ?c-'0':(c-'a'+10);
        return quickpower(16, s.size()-1-idx)*temp;
    }
    char c=s[idx];
        if(c>='A'&&c<='Z')c=tolower(c);
        int temp= c>='0'&&c<='9' ?c-'0':(c-'a'+10);
    return quickpower(16, s.size()-1-idx)*temp+fun(s,idx+1);
}
int main(){
    string s;
    while(cin>>s)
    cout<<fun(s.substr(2,s.size()-2),0)<<endl;
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:23
转人工😡
门口唉提是地铁杀:五次握手了
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务