返回题解分享
讨论 / 题解分享/ 帖子详情

九进制转十进制(结果填空) - 题解

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

string s;
LL res, base, k = 0;

int main()
{
    cin >> s >> base;
    
    for (int i = s.size() - 1; i >= 0; i -- )
    {
        if(s[i] >= 'A')
        //s[i] - 'A': 当s[i]是一个大写字母时,这部分代码会将其转换为对应的十进制数字。
        //例如,当s[i]是'A'时,结果为0;当s[i]是'B'时,结果为1,以此类推。
            res += (s[i] - 'A' + 10) * pow(base, k++);
        //s[i] - '0' 这部分代码用于将字符s[i]从其ASCII码值表示转换为对应的十进制数字。
        else
            res += (s[i] - '0') * pow(base, k++);
    }
    cout << res;
    return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!