20220814大疆C++开发B卷,base64

20220814大疆c++开发
人麻了,读题至少读了接近半个小时,没有解释可太伤了,最后只过了,86%,没有调出来,非常可惜,各路大佬来看看我到底是哪里有问题,欢迎批评指正。
#include<bits/stdc++.h>
using namespace std;
int get10(char c)
{
    if(c>='0'&&c<='9')
        return c-'0';
    else if(c>='a'&&c<='f')
        return c-'a'+10;
    else if(c>='A'&&c<='F')
        return c-'A'+10;
}
char tobase64(int num)
{
    if(num>=0&&num<=25)
        return num+'A';
    else if(num>=26&&num<=51)
        return num+'a'-26;
    else if(num>=52&&num<=61)
        return num+'0'-52;
    else if(num==62)
        return '+';
    else if (num==63)
        return '/';
}
int main()
{

    string str;

    while(cin>>str)
    {
        int len=str.length();
        if(len==0)
        {
            cout<<"==="<<endl;
            continue;
        }
        int last=0;
        for(int i=0; i<len; i++)
        {
            int now=get10(str[i]);
            if(i%3==0)
            {
                last=now;
            }
            else if(i%3==1)
            {
                cout<<tobase64(now/4+last*4);
                last=now&3;
            }
            else if(i%3==2)
            {
                cout<<tobase64(last*16+now);
                last=0;
            }
        }
        if((len/2)%3==2)
        {
            cout<<tobase64(last*4);
            cout<<"="<<endl;
        }
        else if((len/2)%3==1)
        {
            cout<<tobase64(last*16);
            cout<<"=="<<endl;
        }
        else
            cout<<endl;
    }
    return 0;
}


#大疆#
全部评论
43%寄了,直接回家😅
点赞 回复 分享
发布于 2022-08-14 21:35
读半天题最后理解错了,百分之十六,人麻了
点赞 回复 分享
发布于 2022-08-14 22:02
14直接回家😅
点赞 回复 分享
发布于 2022-08-14 22:32
读不懂题
点赞 回复 分享
发布于 2022-08-14 22:35
我没看懂那个补零是怎么补的
点赞 回复 分享
发布于 2022-08-22 15:12 陕西

相关推荐

冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
去B座二楼砸水泥地:不过也可以理解,这种应该没参加过秋招
点赞 评论 收藏
分享
7 3 评论
分享
牛客网
牛客企业服务