sdnuoj 1041. Conversión de base arbitraria

Método 1: dividir n por módulo n

#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <stdlib.h>
#include <sstream>
#include <map>
#include <set>
typedef long long ll;
using namespace std;
int main()
{
    
    
    int n, m, i;
    int ar[10005];
    cin>>n>>m;
    for(i = 0; n; i++)
    {
    
    
        ar[i] = n%m;
        n = n/m;
    }
    for(int j = i-1; j>=0; j--)
    {
    
    
        cout<<ar[j];
    }

    return 0;
}


Método 2: use la pila para darse cuenta de que la
pila se puede usar como una botella de papas fritas, de pie, asumiendo que el comerciante es aburrido, coloque las papas fritas en la botella pieza por pieza, primero el juego en la parte inferior de la pila, el juego de correos en la parte superior, y luego comemos Cuando llega el momento, se toma desde la parte superior. Es imposible pasar la parte inferior a través de las papas fritas sin romper la botella.
Definición y uso

stack<int>s;
s.empty();//判断栈是否为空,空则返回true,否则返回Flase while(!s.empty())
s.size();//返回栈的元素的个数
s.push();//将元素从栈顶塞进去
s.pop();//将栈顶的元素搞出去
s.top();//返回栈顶的元素,这个时候栈顶的元素是没有pop出去的

```cpp
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <stdlib.h>
#include <sstream>
#include <map>
#include <set>
typedef long long ll;
using namespace std;
int main()
{
    
    
    stack<int>s;
    int n, m;
    cin>>n>>m;
    while(n)
    {
    
    
        s.push(n%m);
        n = n/m;
    }
    while(!s.empty())
    {
    
    
        cout<<s.top();
        s.pop();
    }
    return 0;
}












Supongo que te gusta

Origin blog.csdn.net/weixin_51216553/article/details/109538746
Recomendado
Clasificación