Representación de cadena de N dígitos de un entero

[Descripción del problema] Escriba un programa para convertir un número entero n en un número basado en b basado en b. Si n es negativo, el primer carácter de la cadena de salida es-. b es cualquier valor natural mayor que 1 y menor que 37. Cuando b = 2, los caracteres de salida solo pueden ser 0 y 1. Cuando b = 16, la cadena de salida puede contener caracteres 0-9, af (las letras se muestran en minúsculas). b también puede ser otros valores. Por ejemplo, ingrese n = 33, b = 17, entonces el valor hexadecimal de la salida 33 es "1g".
[Forma de entrada] La consola introduce enteros n y b, donde n puede ser negativo. nyb están separados por espacios.
[Forma de salida] La consola emite la cadena de caracteres convertida s.
[Entrada de muestra 1] 5 2
[Salida de muestra 1] 101
[Entrada de muestra 2] -8 8
[Salida de muestra 2 10 -10
[Descripción de la muestra] El binario de 5 es 101
[Estándar de puntuación]

#include <iostream>
#include <stack>
using namespace std;
void com (int x,int y,char a[])
{
    stack<int> s;
    while(x)
    {
        s.push(x%y);
        x=x/y;
    }
    while(!s.empty())
    {
        cout<<a[s.top()];
        s.pop();
    }
}
int main()
{
    char a[]={'0','1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    int x,y;
    cin>>x>>y;
    if(x<0)
    {
        cout<<"-";
        com(-x,y,a);
    }
    else
        com(x,y,a);
    return 0;

}

Publicado 31 artículos originales · elogiado 8 · visitas 2157

Supongo que te gusta

Origin blog.csdn.net/weixin_44034024/article/details/104660871
Recomendado
Clasificación