数据结构实验之栈一:进制转换
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Example Input
1279 8
Example Output
2377
Hint
Author
#include<iostream>
#include <stack>
using namespace std;
int main()
{
int N,m;
cin>>N>>m;//N-要转化的数,要转化成m进制
stack<int>S;
if(N==0) //无论几进制,输入0,结果都是0
{
cout<<"0"<<endl;
}
else
{
while(N)
{
S.push(N%m);//取余进栈
N=N/m;
}
while(!S.empty()) //先进后出,直到栈空
{
cout<<S.top();
S.pop();
}
cout<<endl;
}
return 0;
}
/*
13 2
1101
stack() 声明一个空栈;
stack(mycont) 声明一个初始内容复制自mycont的栈;
函数:
push 将一个新元素压倒栈中;
pop 弹出栈中的元素,如果栈为空,结果未定义,函数返回void;
top 存取栈的顶端元素,如果栈为空,结果未定义,返回的是一个引用;
empty 测试栈是否为空;
size 获得栈中元素的个数;
*/