zoukankan      html  css  js  c++  java
  • SHUoj 字符串进制转换

                                           字符串进制转换

    发布时间: 2017年7月9日 18:17   最后更新: 2017年7月9日 21:17   时间限制: 1000ms   内存限制: 128M

    Claire Redfield在龙之谷游戏的一次任务中获得了一个上了锁的宝箱,上面刻了一串由小写字母构成的字符串A和一个数字

    经过Claire长时间研究,他发现密码是和 有关的。字符串A相当于一个26进制的数字, 相当于 相当于 ……. 相当于25  。然后要将这个26进制的数转化成 进制那就是这个宝箱的密码。

    Claire觉得这个太简单了所以要你帮她完成。

    多组输入,每组一行,输入一个字符串 和一个正整数
    字符串长度<=102<=m<=

    每组输出一行答案,如题意。


    b 2
    1

    思路:进制转换,不过要注意特判0时候的情况
    AC代码:
    #define _CRT_SECURE_NO_DEPRECATE
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<set>
    #include<vector>
    #include<cstring>
    #include<string>
    using namespace std;
    typedef long long ll;
    vector<int>vec;
    string s;
    int m;
    ll change(string s, int base) {
        ll num = 0;
        for (int i = 0; i < s.size(); i++) {
            num = num*base + s[i] - 'a';
        }
        return num;
    }
    
    void transalte(ll sum, int m) {
        while (sum) {
            vec.push_back(sum%m);
            sum /= m;
        }
    }
    
    int main() {
        while (cin >> s >> m) {
            vec.clear();
            ll sum = change(s, 26);
            if (!sum) { cout << "0" << endl; continue; }
            transalte(sum, m);
            reverse(vec.begin(), vec.end());
            for (vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {
                if ((it + 1) != vec.end())cout << *it;
                else cout << *it << endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    Django Rest framework 之 版本
    Django Rest framework 之 节流
    Django Rest framework 之 权限
    Django Rest framework 之 认证
    Python 多线程、多进程 (三)之 线程进程对比、多进程
    Python 多线程、多进程 (一)之 源码执行流程、GIL
    Python 多线程、多进程 (二)之 多线程、同步、通信
    css3 盒模型记
    css3 颜色记
    css3 文本记
  • 原文地址:https://www.cnblogs.com/ZefengYao/p/7193674.html
Copyright © 2011-2022 走看看