您的位置:首页 > 理论基础 > 数据结构算法

数据结构实验之栈一:数制转换

2017-03-05 19:21 85 查看
描述:

输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。

输入:

第一行输入需要转换的十进制非负整数;
第二行输入 R。

输出:

输出转换所得的
R 进制数。

输入例样:

1279

8

输出例样:

2377

做题思路:

运用十进制转化为其它进制公式求目标进制,例:十进制整数m=100转为六进制n,100%6=4(100/6=16),16%6=4(16/6=2)  2%6=2(2/6=0)    当m=0时停止,六进制数为244,将每次得到的余数压入栈中,最后将栈中的元素顺序输出,就得到所要的进制的数。

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{ stack <int> s;
int r,m;
cin>>m>>r;
if(m==0)
cout<<"0";
for(;m>0;m=m/r)
{
s.push(m%r);
}
for(;s.size()!=0;)
{
cout<<s.top();
s.pop();
}
cout<<endl;
return 0;

}


解题心得:

 要记住十进制转为为其它进制的公式,运用栈可以随时输入,不像数组大小固定,更加方便,而且栈的先进后出的顺序正好顺序输出目标进制的数,更加方便(也可能这是个偶然)此题也要注意m=0时要单独讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: