笔试算法1:26进制字母求和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuan_zizizi/article/details/82560180

这里写图片描述

代码:

# include<iostream>
# include<string>
using namespace std;

//字符转10进制
long change1(string str, int len)
{
    long re = 0;
    for (int i = 0; i < len; i++)
    {
        re += (str[i] - 'a')*pow(26, len - i - 1);
    }
    return re;
}
//10进制转26进制
string change2(long number)
{
    long a = 0;
    int count = 0;
    string result;
    string s1;;
    if ((number / 26) == 0)
    {
        s1 = number + 'a';
        result = result + s1;
    }
    else
    {
        while (number)
        {
            a = number % 26;
            number = number / 26;
            s1 = a + 'a';
            result = result + s1;
        }
    }
    return result;
}


int main()
{
    string str1;
    str1 = str1 + 'a';
    str1 = str1 + 'b';
    string str2;
    cin >> str1;
    cin >> str2;
    int len1 = str1.length();
    int len2 = str2.length();
    long result1 = change1(str1, len1);
    long result2 = change1(str2, len2);
    long result = result1 + result2;
    string s3 = change2(result);
    reverse(s3.begin(), s3.end());
    cout << s3 << endl;
}

猜你喜欢

转载自blog.csdn.net/xuan_zizizi/article/details/82560180