• 进制转换 分类: 栈和队列 2015-06-09 10:23 12人阅读 评论(0) 收藏


    进制转换

    TimeLimit: 1000ms Memory limit: 65536K

    题目描述

    输入一个十进制数N,将它转换成R进制数输出。

    输入

    输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)R2<=R<=16,R<>10)。

    输出

    为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10A表示,等等)。

    示例输入

    72

    2312

    -43

    示例输出

    111

    1B

    -11

    //模拟栈
    #include <map>
    #include <set>
    #include <cmath>
    #include <stack>
    #include <queue>
    #include <cstdio>
    #include <cctype>
    #include <vector>
    #include <string>
    #include <climits>
    #include <cstring>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    #define RR freopen("input.txt","r",stdin)
    #define WW freopen("output.txt","w",stdout)
    #define INF 0x3f3f3f3f
    using namespace std;
    struct node
    {
        char data;
        node *next;
    };
    int main()
    {
        int n,m;
        node *head,*p;
        head=new node;
        while(~scanf("%d %d",&n,&m))
        {
            if(n==0)//注意零
            {
                cout<<0<<endl;
            }
            else
            {
                if(n<0)
                {
                    cout<<'-';
                    n=-n;
                }
                int ans;
                head->next=NULL;
                while(n)
                {
                    p=new node;
                    ans=n%m;
                    if(ans>=0&&ans<=9)
                    {
                        p->data=ans+'0';
                    }
                    else
                    {
                        p->data=ans-10+'A';
                    }
                    p->next=head->next;
                    head->next=p;
                    n/=m;
                }
                p=head->next;
                while(p)
                {
                    cout<<p->data;
                    p=p->next;
                }
                cout<<endl;
            }
        }
        return 0;
    }

    STL 
    #include <map>
    #include <set>
    #include <cmath>
    #include <stack>
    #include <queue>
    #include <cstdio>
    #include <cctype>
    #include <vector>
    #include <string>
    #include <climits>
    #include <cstring>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    #define RR freopen("input.txt","r",stdin)
    #define WW freopen("output.txt","w",stdout)
    #define INF 0x3f3f3f3f
    
    using namespace std;
    
    int main()
    {
        int n,m;
        while(~scanf("%d %d",&n,&m))
        {
            if(n==0)
            {
                cout<<0<<endl;
                continue;
            }
            if(n<0)
            {
                cout<<'-';
                n=-n;
            }
            stack<char>B;
            int ans;
            while(n)
            {
                ans=n%m;
                if(ans>=0&&ans<=9)
                {
                    B.push(ans+'0');
                }
                else
                {
                    B.push(ans-10+'A');
                }
                n/=m;
            }
            while(!B.empty())
            {
                cout<<B.top();
                B.pop();
            }
            cout<<endl;
        }
        return 0;
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Javascript错误调试与处理
    大话数据结构笔记——第七章 图
    大话数据结构笔记——第六章 树
    前端常见面试题(三)垂直居中的10种方式
    优化transform在过渡效果中出现文字模糊和抖动问题
    H-ui 管理系统
    thinkphp第一节结构
    php实现验证码
    fullpage.js
    jquery的使用
  • 原文地址:https://www.cnblogs.com/juechen/p/4722053.html
Copyright © 2020-2023  润新知