sdnuoj 1041. Conversion de base arbitraire

Méthode 1: diviser n par modulo 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éthode 2: Utilisez la pile pour réaliser que la
pile peut être utilisée comme une bouteille de croustilles, debout, en supposant que le commerçant est ennuyeux, mettez les croustilles dans la bouteille pièce par pièce, d'abord le jeu en bas de la pile, le jeu d'après-partie en haut, puis nous mangeons Le moment venu, c'est pris par le haut. Il est impossible de passer le fond à travers les croustilles sans casser la bouteille.
Définition et utilisation

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;
}












Je suppose que tu aimes

Origine blog.csdn.net/weixin_51216553/article/details/109538746
conseillé
Classement