sykline

思路:将这个十进制的数整数部分除16取余,小数部分乘16取整。

这里只写了整数部分的转换:

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define MAX 1000000000
#define mod 1000000007
#define FRE() freopen("in.txt","r",stdin)
#define FRO() freopen("out.txt","w",stdout)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
const int maxn = 27;
ll n;
map<ll,char>mp;

void init() {
    mp[0]=\'0\';mp[1]=\'1\';mp[2]=\'2\';mp[3]=\'3\';mp[4]=\'4\';mp[5]=\'5\';
    mp[6]=\'6\';mp[7]=\'7\';mp[8]=\'8\';mp[9]=\'9\';mp[10]=\'A\';mp[11]=\'B\';
    mp[12]=\'C\';mp[13]=\'D\';mp[14]=\'E\';mp[15]=\'F\';
}

int main() {
    init();
    scanf("%lld",&n);
    if(n==0) {
        printf("0\n");
    } else {
        stack<char> ans;
        ll y=0;
        while(n) {
            y = n%16;
            n = n/16;
            ans.push(mp[y]);
        }
        while(!ans.empty()) {
            printf("%c",ans.top());
            ans.pop();
        }
        printf("\n");
    }

    return 0;
}

 

分类:

技术点:

相关文章: