zoukankan      html  css  js  c++  java
  • 数据结构实训(二)--- 整数的N进制字符串表示

    【问题描述】编写程序实现用把整数n转换成以b为基的b进制数。如果n为负数,则输出的字符串的第一个字符为 -。b为大于1小于37的任意自然数值。当b=2时,输出字符只可能是 0 和 1;当b=16时,输出字符串中可能含有字符为 0- 9,a-f(字母以小写输出)。b还可以是其它数值。比如输入n=33,b=17,则输出33的17进制值为"1g"。
    【输入形式】控制台输入整数n和b,其中n可以为负数。n和b以空格分隔.
    【输出形式】控制台输出转化后的字符串s.
    【样例输入1】5 2
    【样例输出1】101
    【样例输入2】-8 8
    【样例输出2】-10
    【样例说明】5的二进制就是101

    #include<iostream>
    #include<vector>
    using namespace std;
    
    int main()
    {
    
        // 存储各进制所需的数
        vector<char> saveNum;
        for(int i=0; i<36; i++)
        {
            if(i<10)
            {
                saveNum.push_back('0'+i);
            }
            else
            {
                saveNum.push_back('a'+i-10);
            }
        }
    
        vector<char> outNum;    // 输出向量
    
        int inputeNum, overNum; // 原始数 进制数
        cin >> inputeNum >> overNum;
    
        if(inputeNum<0){        // 判断正负 负数取正
            cout << "-";
            inputeNum = -inputeNum;
        }
    
        // 进制转换
        while(inputeNum!=0)
        {
            int temp = inputeNum%overNum;
            outNum.push_back( saveNum[temp]);
            inputeNum = inputeNum/overNum;
        }
    
        // 逆向输出
        for(int i=outNum.size()-1; i>=0; i--)
        {
            cout << outNum[i];
        }
    }
  • 相关阅读:
    android background属性问题
    AlertDialog 设置不同按钮的样式
    springboot controller统一异常处理
    springboot 配置自定义拦截器
    Linux中proc信息获取
    AliCloud-tools【分享】
    sql列转行
    算法
    静态变量与代码块
    AbstractQueuedSynchronizer(AQS)
  • 原文地址:https://www.cnblogs.com/DullRabbit/p/12558854.html
Copyright © 2011-2022 走看看