数制转化(栈的应用)

将10进制数转化为任意进制的数有一个方法n=(n/d)*d+n%d,但产生的结果是和最终我们所希望的结果的顺序是相反的,所以对于这种顺序相反的我们可以使用栈这种数据结构,STL中为我们定义好了栈这个结构,直接拿来用就好了

//
//  main.cpp
//  数制转化(栈的应用)
//
//  Created by 张嘉韬 on 16/1/25.
//  Copyright © 2016年 张嘉韬. All rights reserved.
//

#include <iostream>
#include <stack>
using namespace std;
stack <int> sta;
int main(int argc, const char * argv[]) {
    int n,d,a,b,c;
    cin>>n>>d;
    b=1;
    a=n;
    while(b!=0)
    {
        b=a/d;
        c=a%d;
        a=b;
        sta.push(c);
    }
    while(sta.empty()!=1)
    {
        cout<<sta.top();
        sta.pop();
    }
    return 0;
}

你可能感兴趣的:(数制转化(栈的应用))